Android Build.gradle 编译问题

本文解决了因不同版本的支持库导致的Java.lang.NoClassDefFoundError及manifest合并失败的问题。通过Gradle配置策略,强制使用同一版本的支持库,避免了版本间的不兼容性。

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

针对以下两个错误

Java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/animation/AnimatorCompatHelper

Manifest merger failed : Attribute meta-data#Android.support.VERSION@value value=(25.3.0) from [com.android.support:support-v13:25.3.0] AndroidManifest.xml:27:9-31 is also present at [com.android.support:preference-v7:26.0.0-alpha1] AndroidManifest.xml:24:9-38 value=(26.0.0-alpha1). Suggestion: add 'tools:replace="android:value"' to element at AndroidManifest.xml:25:5-27:34 to override.

都是因为如果程序内出现不同的,support或者其他外部引用库的多个版本,Gradle在进行合并的时候会使用本地持有的,最高版本的来进行编译,所以25的support就有可能引用26的东西,就会出现 属性 merge 错误 ,或者Class丢失,解决方法就是强制使用相同版本的库:

configurations.all {

resolutionStrategy.eachDependency { DependencyResolveDetails details ->

   def requested = details.requested

   if (requested.group == 'com.android.support') {

       if (!requested.name.startsWith("multidex")) {

           details.useVersion '25.3.0'

       }

   }
复制代码

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值