我过去两天都被困住了。我想在我的一个示例应用程序中导入我自己的aar然后使用它。我无法访问aar中的类并得到java.lang.NoClassDefFoundError
错误。
既然这是一个常见的问题,在阅读了每一个相关问题之后,我已经尝试了以下内容:
1)转到:File -> New-> New Module -> Import .JAR/.AAR
导入aar
然后将compile project(':Name-Of-Your-Project')
添加到gradle中。
2)使用maven插件并使用gradle安装将aar推送到本地maven repo,然后在我的gradle中重新启动到本地repo。
compile ('com.rsa.mobile.sdk.android:authsdk:3.6.0-SNAPSHOT:debug@aar'){
// transitive=true
}
注意:如果我取消注释transitive = 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'
}
回到了回购。
我不认为第四点应该重要,因为现在的正确方法如上面第1点所述,但只是想把它拿出来。
有人可以帮忙。这看起来像一个微不足道的问题,但我已经浪费了大约2天。
答案 0 :(得分:0)
查看异常,以下代码可以解决问题。将其添加到应用程序gradle中。
android {
defaultConfig {
// Enabling multidex support.
multiDexEnabled true
}
dexOptions {
// FOR GC overhead
incremental true
javaMaxHeapSize "4g"
}
}