由Android10适配到Android12时遇到相关编译失败问题

这篇具有很好参考价值的文章主要介绍了由Android10适配到Android12时遇到相关编译失败问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近Android系统各大应用商店联合发出公告,处于个人隐私安全考虑,强制APP适配到Android 11及以上版本。下面是其中应用市场的公告(顺带提醒没适配的同学):
由Android10适配到Android12时遇到相关编译失败问题,androidstudio问题,android
适配前的开发环境

名称 版本
Android studio Giraffe | 2022.3.1
build.gradle配置的compileOptions JDK 1.8
build.gradle配置的kotlinOptions “1.8”
Gradle JDK版本(通过Project Structure > SDK Location > Gradle Settings配置) JDK 1.8
Android Gradle Plugin版本 4.0.0
Gradle版本 6.1.1
一、错误:java.lang.AssertionError: annotationType(): unrecognized Attribute name MODULE

具体报错信息如下图:
由Android10适配到Android12时遇到相关编译失败问题,androidstudio问题,android
操作步骤:
小编是直接将compileSdkVersion、buildToolsVersion、targetSdkVersion修改为31后通过编译出现这个错误。

compileSdkVersion: 31,
buildToolsVersion: "31.0.0",
minSdkVersion    : 19,
targetSdkVersion : 31,

错误发生原因:
具体原因暂不太清楚,猜测应该是跟Android的compileSdk和buildTools的版本有关,因为将编译版本降级为30时没出现这个错误。
解决方式:
调整Gradle JDK的版本,将jdk版本由1.8升级到11,再次编译该错误解决。

二、错误:java.lang.NoClassDefFoundError: javax/annotation/Generated

具体报错信息如下图:
由Android10适配到Android12时遇到相关编译失败问题,androidstudio问题,android
操作步骤:
设置Gradle JDK的版本为11后直接进行编译
错误发生原因:
直观上看是编译时缺少javax/annotation相关的类,仔细分析错误发现涉及到dagger库,初步认定与dagger版本有关。
解决方式:
对dagger版本进行升级,由2.9 -> 2.47

说明:
若不是由引入的第三方库引起可尝试引入javax.annotation-api库,如下:
implementation ‘javax.annotation:javax.annotation-api:1.3.2’
annotationProcessor(“javax.annotation:javax.annotation-api:1.3.2”)

正常以小编的工程把上面两个问题解决就能正常编译打包了,但是强迫症迫使我与时俱进,于是将工程使用的Java版本升级到11,出现了新的错误。

三、错误: 无法访问ViewGroup找不到android.view.ViewGroup的类文件

详细错误如图:
由Android10适配到Android12时遇到相关编译失败问题,androidstudio问题,android
操作步骤:
设置build.gradle的compileOptions和kotlinOptions 为java 11
错误发生原因:
通过错误可以看出应该跟android库没多少关系,真正的错误原因应该是这个:
org.gradle.api.internal.tasks.compile.CompilationFailedException: Compilation failed; see the compiler error output for details
解决方式:
待解决(可能需要升级gradle),等后面有空了再研究下,先把版本适配了。
如已有解决办法的同学欢迎在评论区留言。

扩展:
若有同学不了解gradle JDK和build.gradle中compileOptions的区别的可以参考下面文章:
https://blog.csdn.net/hnjcxy/article/details/122902155文章来源地址https://www.toymoban.com/news/detail-681694.html


黑暗中摸索不易,若对你有帮助,希望能给个大赞!!!

到了这里,关于由Android10适配到Android12时遇到相关编译失败问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • UE 虚幻引擎 打包android 遇到的一些相关问题,包含插件,git

    1,UE5 name.project requires a temporary target.cs to be generated (Water plugin is enabled) 这个报错是因为启用了,ue内置的一些插件,譬如water  weather system ,如果不是特别需要可以去掉,如果必须要用,那可以参考后面的方式 2,如果继续用插件,那么就会报 这个问题是因为,很多插件代码

    2024年02月15日
    浏览(30)
  • 电脑连不上wifi,适配器Intel(R)WiFi6 AX201 160MHz遇到与驱动程序或硬件相关问题,连不上wifi,电脑WiFi图标没了

    方法一:电脑冷重启即可 就是长按那个开机键,然后滑动关机,,,重启(我的问题不适合) 方法二 win+r 输入 cmd 用管理员模式启动 然后输入 netsh winsock reset 然后在进行冷重启即可 小技巧 连不上WiFi了可以先拿手机用usb分享热点连上电脑,这样电脑就有网络,可以下载驱动

    2024年02月04日
    浏览(150)
  • Android 12 快速适配

    Android 12 需要更新适配点并不多,本篇主要介绍最常见的两个需要适配的点: android:exported[1] 和 SplashScreen[2] 。 它主要是设置 Activity 是否可由其他应用的组件启动 , “true” 则表示可以,而“false”表示不可以。 若为“false”,则 Activity 只能由同一应用的组件或使用同一用户

    2024年02月09日
    浏览(35)
  • Android 12+ MQTT适配

    最终的解决方案是下载源码去改。我用的是已经修改好了的库,如果包名要自己的, 要注意: 1. compileSdk 34 和 targetSdk 34 改成33(Android12)或者34(Android13)。 2. 下载的 module 导入。 3. gradle 导入: 4. 配置清单换一下Service: service android:name=\\\"com.somsakelect.android.mqtt.MqttService\\\"

    2024年01月17日
    浏览(34)
  • Android12中蓝牙权限适配

    AndroidManifest.xml 代码 说明: 必须按照这两步申请蓝牙权限, 首先 在androidManifest.xml中配置蓝牙权限,Android11及以下android.permission.BLUETOOTH、android.permission.BLUETOOTH_ADMIN申请这两个,Android12中蓝牙权限进行新增android.permission.BLUETOOTH_SCAN、android.permission.BLUETOOTH_ADVERTISE、android.permi

    2024年02月11日
    浏览(44)
  • Android——8种通知栏-适配 Adnroid12

    GT库在很早的版本里就有出 通知栏封装方法,但使用起来非常有局限性,接下来咋们来看看新版GT库里的 8种通知栏 ,是如何实现的。 通知栏效果图:(博主真机 一加10T pro  Android版本12)         目录 通知栏效果图:(博主真机 一加10T pro  Adnroid版本12) 使用GT库里的,当然需

    2023年04月08日
    浏览(33)
  • Xcode15+iOS17适配以及遇到的问题

    今天更新了 Xcode15,遇到了一些问题,做下记录希望大家少走点坑。 Xcode更新完成后,打开项目一直显示 no fund  iOS17 sdk,根据项目不同提示可能有区别,根据提示下载后提示安装失败,试了几次还不行,就去官网查看一下情况,苹果已经给出解决方案; 解决: 终端执行以下命

    2024年02月07日
    浏览(44)
  • 【Android 10 适配】隐私权限变更

    更详细内容请参考 Android 10 中的隐私权变更 Android 10(API 级别 29)引入了多项功能和行为变更,旨在更好地保护用户的隐私。这些变更让用户更清楚地了解并更好地控制自己的数据及为应用提供的权能。 下面是 Android 10 中与 隐私权限 相关的主要变更。 默认情况下,以 Andr

    2024年01月22日
    浏览(48)
  • Android 10-11适配外部存储方案

    Android Api 29 对文件和文件夹进行了重大更改。不允许使用外部存储,如下方法: Environment.getExternalStorageDirectory() = /mnt/sdcard   Environment.getExternalStoragePublicDirectory(“test”) = /mnt/sdcard/test 只能使用内部存储 getExternalFilesDir(“test”) = /mnt/sdcard/Android/data/com.my.app/files/test getExternalF

    2024年02月06日
    浏览(31)
  • 遇到问题(三) 串口打开失败/串口不可用

    若是之前一直好用突然不好用请检测烧录器,若烧录器好用可采取额外供电的方法解决(eg 加一个电池供电模块) 若是第一次使用请先检查驱动是否下载成功 驱动免费下载链接

    2024年02月20日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包