无法从aar访问类



我已经被困了两天了。我想在一个示例应用程序中导入我自己的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" 
    }
}

最新更新