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版本就可以了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了