Android解决This project uses AndroidX dependencies---The following AndroidX dependencies are detected.

本文档详细记录了解决Android项目中遇到的AndroidX依赖与旧版库冲突的过程,包括将`compileSdkVersion`升级到28,处理Gradle配置,解决重复权限声明,以及解决AndroidManifest.xml的错误。最终通过删除AndroidX依赖并解决依赖冲突实现了应用的正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开始报错:
This project uses AndroidX dependencies, but the ‘android.useAndroidX’ property is not enabled. Set this property to true in the gradle.properties file and retry.
The following AndroidX dependencies are detected: androidx.fragment:fragment:1.2.5, androidx.core:core:1.1.0, androidx.versionedparcelable:versionedparcelable:1.1.0, androidx.lifecycle:lifecycle-common:2.2.0, androidx.lifecycle:lifecycle-viewmodel:2.2.0, androidx.customview:customview:1.0.0, androidx.lifecycle:lifecycle-livedata:2.0.0, androidx.lifecycle:lifecycle-viewmodel-savedstate:2.2.0, androidx.loader:loader:1.0.0, androidx.activity:activity:1.1.0, androidx.collection:collection:1.1.0, androidx.viewpager:viewpager:1.0.0, androidx.arch.core:core-runtime:2.1.0, androidx.lifecycle:lifecycle-livedata-core:2.2.0, androidx.arch.core:core-common:2.1.0, androidx.savedstate:savedstate:1.0.0, androidx.annotation:annotation:1.1.0, androidx.lifecycle:lifecycle-runtime:2.2.0
Affected Modules: app
设置gradle版本

在这里插入图片描述

又出现:
Error running ‘app’: Default Activity not found
Run/Debug Configuration Launch Options—Launch:Nothing
在这里插入图片描述

设置
Manifest merger failed with multiple errors

在Terminal输入命令
gradlew processDebugManifest -stacktrace
如图:
在这里插入图片描述

报错:
Microsoft Windows [版本 10.0.19043.1348]
© Microsoft Corporation。保留所有权利。
E:\Android2020>gradlew processDebugManifest -stacktrace
Welcome to Gradle 6.6.1!
Here are the highlights of this release:

  • Experimental build configuration caching
  • Built-in conventions for handling credentials
  • Java compilation supports --release flag
    For more details see https://docs.gradle.org/6.6.1/release-notes.html

Starting a Gradle Daemon, 1 incompatible and 1 stopped Daemons could not be reused, use --st
atus for details

Task :app:processDebugManifest FAILED
E:\Android2020\app\src\main\AndroidManifest.xml:7:5-79 Warning:
Element uses-permission#android.permission.ACCESS_NETWORK_STATE at AndroidManifest.x
ml:7:5-79 duplicated with element declared at AndroidManifest.xml:6:5-79
E:\Android2020\app\src\main\AndroidManifest.xml:8:5-79 Warning:
Element uses-permission#android.permission.ACCESS_NETWORK_STATE at AndroidManifest.x
ml:8:5-79 duplicated with element declared at AndroidManifest.xml:7:5-79
E:\Android2020\app\src\main\AndroidManifest.xml:9:5-79 Warning:
Element uses-permission#android.permission.ACCESS_NETWORK_STATE at AndroidManifest.x
ml:9:5-79 duplicated with element declared at AndroidManifest.xml:8:5-79
E:\Android2020\app\src\main\AndroidManifest.xml:10:5-79 Warning:
Element uses-permission#android.permission.ACCESS_NETWORK_STATE at AndroidManifest.x
ml:10:5-79 duplicated with element declared at AndroidManifest.xml:9:5-79
E:\Android2020\app\src\main\AndroidManifest.xml:11:5-79 Warning:
Element uses-permission#android.permission.ACCESS_NETWORK_STATE at AndroidManifest.x
ml:11:5-79 duplicated with element declared at AndroidManifest.xml:10:5-79
E:\Android2020\app\src\main\AndroidManifest.xml:16:5-79 Warning:
Element uses-permission#android.permission.ACCESS_NETWORK_STATE at AndroidManifest.x
ml:16:5-79 duplicated with element declared at AndroidManifest.xml:11:5-79
E:\Android2020\app\src\main\AndroidManifest.xml:21:5-76 Warning:
Element uses-permission#android.permission.ACCESS_WIFI_STATE at AndroidManifest.xml:
21:5-76 duplicated with element declared at AndroidManifest.xml:17:5-76
E:\Android2020\app\src\main\AndroidManifest.xml:22:5-76 Warning:
Element uses-permission#android.permission.CHANGE_WIFI_STATE at AndroidManifest.xml:
22:5-76 duplicated with element declared at AndroidManifest.xml:18:5-76
E:\Android2020\app\src\main\AndroidManifest.xml:26:5-81 Warning:
Element uses-permission#android.permission.WRITE_EXTERNAL_STORAGE at AndroidManifest
.xml:26:5-81 duplicated with element declared at AndroidManifest.xml:14:5-81
E:\Android2020\app\src\main\AndroidManifest.xml:27:5-67 Warning:
Element uses-permission#android.permission.INTERNET at AndroidManifest.xml:27:5-67 d
uplicated with element declared at AndroidManifest.xml:15:5-67
E:\Android2020\app\src\main\AndroidManifest.xml:28:5-79 Warning:
Element uses-permission#android.permission.ACCESS_NETWORK_STATE at AndroidManifest.x
ml:28:5-79 duplicated with element declared at AndroidManifest.xml:16:5-79
E:\Android2020\app\src\main\AndroidManifest.xml:29:5-79 Warning:
Element uses-permission#android.permission.ACCESS_NETWORK_STATE at AndroidManifest.x
ml:29:5-79 duplicated with element declared at AndroidManifest.xml:28:5-79
E:\Android2020\app\src\main\AndroidManifest.xml:34:9-82 Error:
Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponen
tFactory) from AndroidManifest.xml:34:9-82
is also present at [androidx.core:core:1.1.0] AndroidManifest.xml:24:18-86 value=(an
droidx.core.app.CoreComponentFactory).
Suggestion: add ‘tools:replace=“android:appComponentFactory”’ to eleme
nt at AndroidManifest.xml:32:5-69:19 to override.
继续折腾:
主要错误:
Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponen
tFactory) from AndroidManifest.xml:34:9-82
在这里插入图片描述
继续:

Suggestion: add ‘tools:replace=“android:appComponentFactory”’ to eleme
nt at AndroidManifest.xml:32:5-69:19 to override.
按照提示在Androidmanifest.xml文件中的节点中
增加’tools:replace="android:appComponentFactory"属性
如图:
在这里插入图片描述

又报错:
E:\Android2020\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:514: AAPT: error: resource android:attr/fontVariationSettings not found.

又报错:
Error: AndroidManifest.xml doesn’t exist or has incorrect root tag

报错:
E:\Android2020\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:514: AAPT: error: resource android:attr/fontVariationSettings not found.

E:\Android2020\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:514: AAPT: error: resource android:attr/ttcIndex not found.

Android resource linking failed
E:\Android2020\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:514: AAPT: error: resource android:attr/fontVariationSettings not found.

E:\Android2020\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:514: AAPT: error: resource android:attr/ttcIndex not found.

把 compileSdkVersion 27修改成 compileSdkVersion 28

运行报错:
Duplicate class android.support.v4.app.INotificationSideChannel found in modules core-1.1.0-runtime.jar (androidx.core:core:1.1.0) and support-compat-27.1.1-runtime.jar (com.android.support:support-compat:27.1.1)
Duplicate class android.support.v4.app.INotificationSideChannel S t u b f o u n d i n m o d u l e s c o r e − 1.1.0 − r u n t i m e . j a r ( a n d r o i d x . c o r e : c o r e : 1.1.0 ) a n d s u p p o r t − c o m p a t − 27.1.1 − r u n t i m e . j a r ( c o m . a n d r o i d . s u p p o r t : s u p p o r t − c o m p a t : 27.1.1 ) D u p l i c a t e c l a s s a n d r o i d . s u p p o r t . v 4. a p p . I N o t i f i c a t i o n S i d e C h a n n e l Stub found in modules core-1.1.0-runtime.jar (androidx.core:core:1.1.0) and support-compat-27.1.1-runtime.jar (com.android.support:support-compat:27.1.1) Duplicate class android.support.v4.app.INotificationSideChannel Stubfoundinmodulescore

### 解决方案 当遇到 `Inconsistent JVM-target compatibility` 的错误提示时,通常是因为项目中的不同编译任务指定了不同的 JVM 版本目标。具体来说,在此案例中,`compileDebugJavaWithJavac` 使用的是 Java 11 (`11`) 而 `compileDebugKotlin` 则使用了更高版本的 Kotlin 编译器支持的目标 JVM 版本(即 JDK 21)。这种不一致性会引发构建失败。 以下是解决问题的方法: #### 修改 `build.gradle.kts` 或 `build.gradle` 为了统一项目的 JVM 配置,可以在根目录下的 `build.gradle.kts` 文件或者模块级的 `build.gradle.kts` 中设置全局的 JVM 目标版本。通过这种方式可以确保所有的编译任务都遵循相同的配置。 ```kotlin plugins { kotlin("jvm") version "1.9.0" } java { sourceCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11 } tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> { kotlinOptions { jvmTarget = "11" // 设置与 Java 兼容的 JVM 版本 } } ``` 如果正在使用的 Gradle 构建文件是 Groovy 格式的,则应调整为如下形式: ```groovy plugins { id 'org.jetbrains.kotlin.jvm' version '1.9.0' } java { sourceCompatibility = JavaVersion.toVersion(11) targetCompatibility = JavaVersion.toVersion(11) } tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all { kotlinOptions { jvmTarget = "11" // 统一指定 JVM Target } } ``` 以上代码片段的作用在于强制将所有 Kotlin 和 Java 编译任务的目标 JVM 版本设定为相同值——这里选择了 `11` 来匹配 `compileDebugJavaWithJavac` 的需求[^1]。 #### 升级 Kotlin 插件版本 有时旧版的 Kotlin 插件可能无法很好地处理高版本的 JVM 配置选项。因此建议升级到最新稳定发布的 Kotlin 插件版本。例如当前最新的版本可能是 `1.9.x` 或者更高的版本。可以通过修改 `settings.gradle.kts` 或直接更新 `build.gradle(.kts)` 文件来完成这一操作。 对于 Kotlin DSL 用户而言: ```kotlin plugins { kotlin("multiplatform").version("1.9.0") apply false } ``` 而对于传统 Groovy DSL 用户则需这样写入: ```groovy pluginManagement { plugins { id "org.jetbrains.kotlin.multiplatform" version "1.9.0" } } ``` 最后一步非常重要,它能帮助我们避免因插件过期而导致的功能缺失或异常行为发生[^1]。 #### 清理缓存并重新同步项目 执行完上述更改之后,请记得清理掉本地构建缓存以及 IDE 自身维护的相关元数据信息后再尝试再次运行构建命令。这一步骤有助于移除任何残留的历史状态影响新的配置生效过程。 在 Android Studio/IntelliJ IDEA 上可通过菜单栏依次点击 **File -> Invalidate Caches / Restart...**, 然后选择 **Invalidate and Restart** 完成环境刷新;而在纯 CLI 场景下可利用以下指令清除 Gradle Cache 并触发全新依赖解析流程: ```bash ./gradlew clean --refresh-dependencies ``` --- ### 总结 综上所述,解决 `Inconsistent JVM-target compatibility` 错误的关键在于保持整个项目范围内的一致性 JVM 配置,并适时考虑升级工具链组件至更现代的状态以便获得更好的兼容性和性能表现[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

试行

祝您生活愉快!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值