我有几个项目是为了创建 .aar 而构建的。然后我将此 .aar 导入到 Android Studio 的 /libs 下。此依赖项的 build.gradle 文件如下所示:
repositories{
flatDir{
dirs 'libs'
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.0.0'
compile 'com.google.android.gms:play-services:7.0.0'
compile 'com.android.support:multidex:+'
compile(name: 'customApi-debug', ext:'aar')
}
由于库相当大,我设置了 multiDexEnabled = true。 Android Studio 找到该库并自动完成工作。构建也正常,但运行应用程序会出现以下错误:
java.lang.NoClassDefFoundError: com.companyx.android.api.ui.vision.metaio.MetaIoView
at com.companyx.android.api.ui.vision.metaio.MetaIoView$$InjectAdapter.<init>(MetaIoView$$InjectAdapter.java:29)
我分别解压缩并反汇编了 .aar 和 dex 文件,并验证了它所抱怨的类确实存在。我已经尝试过现有的方法来处理这个问题,但没有一个有效。
还有其他人经历过这个吗?提前致谢。
我遇到了同样的问题。修复方法首先是将 AAR 文件部署到本地 Maven(我在https://github.com/dcendents/android-maven-gradle-plugin https://github.com/dcendents/android-maven-gradle-plugin)。然后我参考了本地专家,如下所述https://stackoverflow.com/a/23045791/2563009 https://stackoverflow.com/a/23045791/2563009。最终我使用传递选项声明了依赖项,如下所示:
dependencies {
compile('com.myapp.awesomelib:awesomelib:0.0.1@aar') {
transitive = true
}
}
那么错误就会消失。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)