java.lang.AssertionError: annotationType(): unrecognized Attribute name MODULE 和 javax.xml.bind.JAXBException問題處理


先說下環境:

項目是老項目

jdk用的是1.8

然后用新版的Android Studio 3.1 雪狐版 IDE推薦使用jdk 11

用新版的AS跑老項目出現的問題

一、java.lang.AssertionError: annotationType(): unrecognized Attribute name MODULE

解決方案:

因為SDK問題,目前最新的SDK是31 也就是 Android 12, compileSdkVersion會默認是31 ,但31的SDK就會帶來這個問題

所以只需要將 compileSdkVersion 30(或以下版本就行了),但編譯又出現了第二個問題就是下面這個問題

二、error: resource android:attr/fontVariationSettings resource android:attr/ttcIndex not found.

解決方案:

來自知乎某解答

原因是第三方庫中引用了androidx.core:core-ktx:+,然后系統自動更新到了1.7.0版本,
導致報錯error: resource android:attr/lStar not found,有人說需要更改編譯版本compileSdkVersion升級到31,並不需要。
解決方法:方法1:全局搜索項目androidx.core:core-ktx,若沒有設置具體版本的修改為具體版本就好。
方法2:若是第三方庫使用沒有設置具體版本,在app的build.gradle中添加如下,強制項目使用具體的版本,解決問題
configurations.all {
  resolutionStrategy {
force 'androidx.core:core-ktx:1.6.0'
}
}

然后也許后面會出現第三個問題。

三、javax.xml.bind.JAXBException。

原因JDK版本原因。可以看我這篇博客Android Studio 升級后出現javax/xml/bind/JAXBException異常問題解決

其實就是換回1.8老項目的JDK版本就可以了。

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM