无法从aar访问类

时间:2016-09-20 06:41:20

标签: android android-studio gradle android-gradle aar

我过去两天都被困住了。我想在我的一个示例应用程序中导入我自己的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天。

1 个答案:

答案 0 :(得分:0)

查看异常,以下代码可以解决问题。将其添加到应用程序gradle中。

android {
    defaultConfig {
        // Enabling multidex support.
        multiDexEnabled true
    }
dexOptions { 
        // FOR GC overhead 
          incremental true 
          javaMaxHeapSize "4g" 
    }
}