Android studio升级到2021、gradle使用7+ 版本、切换至Androidx出现的问题 野性酷女 2024-04-01 05:57 16阅读 0赞 #### 1、错误: #### > DSL element ‘dexOptions’ is obsolete and should be removed. > It will be removed in version 8.0 of the Android Gradle plugin. > Using it has no effect, and the AndroidGradle plugin optimizes dexing automatically. > Affected Modules: app 报上述错误需要将如下配置移除 > //设置虚拟机堆内存空间大小,避免在编译期间OOM > dexOptions \{ > // INFO: DSL element ‘DexOptions.incremental’ is obsolete and will be removed at the end of 2018. > // Affected Modules: app > // incremental true > javaMaxHeapSize “4g” > \} #### 2、错误 #### > Failed to resolve: com.github.chrisbanes:PhotoView:latest.release.here > Show in Project Structure dialog > Show Details > Affected Modules: common gradle7 以上版本配置maven 库。报上述错误需要如下解决 > 在项目根路径下的build.gradle中配置: buildscript { repositories { mavenCentral() google() //添加阿里云镜像,不添加无法拉取包 maven { url "https://maven.aliyun.com/repository/public" } maven { url "https://maven.aliyun.com/mvn/view" } maven { url "https://jitpack.io" } } dependencies { classpath 'com.android.tools.build:gradle:7.2.0' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } 在setting.gradle配置文件中配置: dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() maven { url "https://maven.aliyun.com/repository/public" } maven { url "https://maven.aliyun.com/mvn/view" } maven { url "https://jitpack.io" } } } #### 3、无法找到主模块的R文件 #### 我的环境的中的gradle的版本是7+ ,在主模块依赖子模块后,发现主模块使用**R.id.tv\_back**时无法找到子模块的r资源,也就是说我并没有发现R资源文件合并到主模块中,也无法在build的生成目录下找到r文件。 这个问题没有找到真正的原因,只是听说,高版本的gradle 在编译时之间将资源文件id值替换成了常量,但是R文件肯定是生成了的,只是没找到。这个具体还要进一步验证一下。 **以下是截取其他项目的(gradle 4+)** ![在这里插入图片描述][7b5c97e0420d46279224173d8dfbfcc1.png] 但是在本项目中却没找到。不知道为什么,但是还能用。 #### 4、将butternife进行升级后,如何使用 #### 我将butternife 升级到10.0.0 了,是兼容adroidx 的。具体使用方式网上例子很多。 #### 5、R资源没有合并 #### > `主模块依赖子模块,子模块R资源并没有合并到主模块的R中,导致主R无法找到子模块下的R资源` **原因分析:** 发现多个模块的资源文件id无法合并到主模块中。而是每个模块自己保持自己的。 后来研究发现是: android.nonTransitiveRClass=true 搞得鬼。 该字段描述位于 工程/ gradle.properties下,新建工程时默认是开的,需要自己主动关闭。 该字段描述: 非传递性 R 类 启用非传递性 R 类 (non-transitive R-class) 后,您应用中的 R 类将只会包含在子项目中声明的资源,依赖项中的资源会被排除在外。这样一来,子项目中的 R 类大小将会显著减少。 **解决:** #### 6、报错 #### > Caused by: com.android.tools.build.jetifier.processor.transform.bytecode.AmbiguousStringJetifierException: The given artifact contains a string literal with a package reference ‘android.support.v4.content’ that cannot be safely rewritten. Libraries using reflection such as annotation processors need to be updated manually to add support for androidx. 问题出现的原因: **产生这个错误的原因是由于项目引用了AndroidX的依赖包,但是下面butterknife这两个依赖的内部是引用之前的 support 包实现的,因此产生矛盾** 解决: `将butternife进行升级到10.0.0 即可` #### 7、报错 #### > Manifest merger failed : android:exported needs to be explicitly specified for element <activity\#com.cop.ronghw.app.ui.main.activity.SplashActivity>. Apps targeting Android 12 and higher are required to specify an explicit value for `android:exported` when the corresponding component has an intent filter defined. See https://developer.android.com/guide/topics/manifest/activity-element\#exported for details. > 问题翻译: > 针对Android 12及更高版本的应用,当相应的组件定义了意图过滤器时,需要为`Android:exported`指定显式值。详情请参见[https://developer.android.google.cn/guide/topics/manifest/activity-element\#exported][https_developer.android.google.cn_guide_topics_manifest_activity-element_exported]。 > 解决: > 在当前的activity 中添加 android:export = true > ![在这里插入图片描述][f252b937dc534a2a9b1ae75164ead46f.png] #### 8、报错: #### > Android resource linking failed > ERROR:/Users/senda/Desktop/hzs2/hzsup/android相关/andriodxcop/app/build/intermediates/incremental/debug/mergeDebugResources/merged.dir/values-night-v8/values-night-v8.xml:5: AAPT: error: resource color/purple\_200 (aka com.cop.ronghw.app:color/purple\_200) not found. > ERROR:/Users/senda/Desktop/hzs2/hzsup/android相关/andriodxcop/app/build/intermediates/incremental/debug/mergeDebugResources/merged.dir/values-night-v8/values-night-v8.xml:6: AAPT: error: resource color/purple\_700 (aka com.cop.ronghw.app:color/purple\_700) not found. > ERROR:/Users/senda/Desktop/hzs2/hzsup/android相关/andriodxcop/app/build/intermediates/incremental/debug/mergeDebugResources/merged.dir/values-night-v8/values-night-v8.xml:9: AAPT: error: resource color/teal\_200 (aka com.cop.ronghw.app:color/teal\_200) not found. > ERROR:/Users/senda/Desktop/hzs2/hzsup/android相关/andriodxcop/app/build/intermediates/incremental/debug/mergeDebugResources/merged.dir/values-night-v8/values-night-v8.xml:10: AAPT: error: resource color/teal\_200 (aka com.cop.ronghw.app:color/teal\_200) not found. > 解决:这里是我项目中的colors.xml 中没有配置color 相关的资源数据,这是纯xml报错了,没改正过来。 #### 9、报错 #### > The error I am getting is : "The color “colorRed” in values has no declaration in the base values folder; this can lead to crashes when the resource is queried in a configuration that does not match this qualifier less… " 解决:在Android studio 中操作: Invalidate Cache and Restart 如下: ![在这里插入图片描述][a2facefcb9234372a59bee63b5b48216.png] [7b5c97e0420d46279224173d8dfbfcc1.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/01/f66c3879cbec43ef8780ec59ffbfab27.png [https_developer.android.google.cn_guide_topics_manifest_activity-element_exported]: https://developer.android.google.cn/guide/topics/manifest/activity-element#exported [f252b937dc534a2a9b1ae75164ead46f.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/01/7919d9cf4fbc474d992ba6e800484b85.png [a2facefcb9234372a59bee63b5b48216.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/01/6bb0fa2bf9cd47ee8c7a6adba9abcfbf.png
相关 Android studio升级到2021、gradle使用7+ 版本、切换至Androidx出现的问题 1、错误: > DSL element ‘dexOptions’ is obsolete and should be removed. > It will be re 野性酷女/ 2024年04月01日 05:57/ 0 赞/ 17 阅读
相关 Android Studio升级到gradle 7.0时遇到的若干问题 一、http仓库编译无法通过的问题 我们使用阿里镜像去下载库,升级到7.0时会出现以下错误: opt-in, is unsupported. Switch Ma 太过爱你忘了你带给我的痛/ 2022年09月12日 14:43/ 0 赞/ 960 阅读
相关 Android Studio中Gradle版本和Gradle插件版本问题整理 使用Android Studio时,我们有时候需要查看Gradle版本,具体如何查看呢!经过如下几步操作就可以了。 1.启动Android Studio,选择 我就是我/ 2022年08月21日 00:21/ 0 赞/ 403 阅读
相关 Android Studio查看Gradle版本 如图所示 ![这里写图片描述][20161006223809781] Gradle最新版本 [http://services.gradle.org/distribut 谁践踏了优雅/ 2022年07月16日 05:08/ 0 赞/ 215 阅读
相关 Android Studio之Gradle版本配置 首先贴出我下载的所有Gradle版本的zip包,百度网盘:[http://pan.baidu.com/s/1hsQd6IC][http_pan.baidu.com_s_1hsQ 清疚/ 2022年07月10日 06:59/ 0 赞/ 612 阅读
相关 关于Android Studio 升级到3.0版本后出现AAPT 关于安卓最新版本的3.1.2创建工程后,由于出现AAPT问题,我就参考网上的解决方案,向Gradle.properties加入android.enableAapt2=false 绝地灬酷狼/ 2022年05月25日 13:56/ 0 赞/ 303 阅读
相关 Android Studio 和 Gradle 版本关系 因为最近经常导入别人的Android Studio项目学习,总是出现问题,大多数是编译环境的问题,所以有必要了解一下Android Studio 和 Gradle 淡淡的烟草味﹌/ 2022年01月30日 10:55/ 0 赞/ 281 阅读
相关 android studio gradle统一管理版本 创建config.gradle ext { android = [ compileSdkVersion : 26 刺骨的言语ヽ痛彻心扉/ 2021年09月30日 02:08/ 0 赞/ 296 阅读
相关 Android studio升级AndroidX 在开发flutter APP的时候,因为某个包的引入导致现在需要将Android Studio升级AndroidX,这个坑也是挺深的 flutter构建APP的时候报以下的错 妖狐艹你老母/ 2021年06月11日 15:14/ 0 赞/ 488 阅读
还没有评论,来说两句吧...