我已经被困了两天了。我想在一个示例应用程序中导入我自己的aar,然后使用它。我不能访问aar内部的类并得到java.lang.NoClassDefFoundError
错误。
现在,由于这是一个常见的问题,在阅读了每个相关问题之后,我已经尝试了以下方法:
1)导入aar,执行:File -> New-> New Module -> Import .JAR/.AAR
然后在gradle中加入compile project(':Name-Of-Your-Project')
2)使用maven插件并通过使用gradle install将aar推入本地maven仓库,然后在我的gradle中引用本地repo aar。
compile ('com.rsa.mobile.sdk.android:authsdk:3.6.0-SNAPSHOT:debug@aar'){
// transitive=true
}
注意:如果我取消传递=true的注释,我在安装应用程序时得到以下异常:
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536
3)按照许多答案中的建议重建和清理项目。
4)唯一没有解决的问题是将aar放在一个目录中,然后在添加
后将其引用为compile(name:'Name-Of-Your-Project', ext:'aar')
。flatDir {
dirs 'libs'
}
到回购。我认为第四点应该不重要,因为现在正确的方法就像上面第一点提到的那样,但我只是想把它提出来。
有人能帮帮我吗?这看起来是一个微不足道的问题,但我已经浪费了大约2天的时间。
查看下面的异常代码可以解决这个问题。把它添加到应用gradle中。
android {
defaultConfig {
// Enabling multidex support.
multiDexEnabled true
}
dexOptions {
// FOR GC overhead
incremental true
javaMaxHeapSize "4g"
}
}