在过去的两天里,我一直被困住。我想在我的一个示例应用程序中导入我自己的 aar,然后使用它。我无法访问 aar 中的类并获得 java.lang.NoClassDefFoundError
错误。
现在由于这是一个常见问题,在阅读了每个相关问题之后,我已经尝试了以下方法:
1) 通过以下方式导入 aar:File -> New-> New Module -> Import .JAR/.AAR
然后添加 compile project(':Name-Of-Your-Project')
到毕业典礼。
2)使用maven插件并通过使用gradle install将aar推送到本地maven repo,然后在我的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'
}
到 repo 。
我认为第 4 点不重要,因为现在正确的方法正如上面第 1 点所述,只是想把它说出来。
有人可以帮忙吗。这看起来像一个微不足道的问题,但我已经浪费了大约 2 天。
最佳答案
查看异常下面的代码可以解决问题。将其添加到应用程序 gradle 中。
android {
defaultConfig {
// Enabling multidex support.
multiDexEnabled true
}
dexOptions {
// FOR GC overhead
incremental true
javaMaxHeapSize "4g"
}
}
关于android - 无法从 aar 访问类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39587322/