android - 无法从 aar 访问类

标签 android android-studio gradle android-gradle-plugin aar

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

相关文章:

java - Expandablelistview subview 呈现两次(尽管高度设置为 match_parent)

Android 键盘在 Web View 中隐藏输入

android - 由于数字 Assets 链接,Google Play 不接受即时应用

android - .getLastLocation() FusedLocationProviderClient 的位置数据为空

适用于 Mac 的 Android Studio 1.5.x 随机崩溃

android - 优雅地处理缺少的gradle定义(如果缺少定义,请使用默认值)

java - 'Gradle cucumber' 与 testImplementation 不起作用

android - 创建包含 javadoc 和源的 Android 库 AAR

java - Android Studio Kotlin 自动补全重复建议

java - Google Java格式+验证Google Java格式组合无效