我知道这个问题似乎已经被问过了,但它们略有不同,我无法找到解决我问题的方法。
然而,对于部署,我们有本地aar文件,其中已经在其内部包含了它们的jar依赖项
libs
文件夹在部署的构建中。gradle我们定义了以下条目来包括它们:
repositories {
jcenter()
flatDir {
dirs '../../libs'
}
maven {
url "https://maven.google.com"
}
}
dependencies {
compile 'com.android.support:appcompat-v7:26.1.0'
compile ":NameOfAarFile:1.0.0@aar"
compile ":NameOfAnotherAar:1.0.0@aar"
compile fileTree(include: ['*.jar'], dir: 'libs')
}
如果我在android studio中打开该项目,gradle会进行检查并让我构建它。它打开了,但是当你试图使用aar中的jar中的功能时,我得到了
NoClassDefFoundError
.
所以我从输出中反编译了apk,运行它们
dex2jar
然后用
jd-gui
只是为了发现,他们在他们预期的地方。
现在我真的想知道
NoClassDefFoundError
来自或-
更重要的是,如何摆脱它?
这个
official documentation
提及:
库模块可以包括JAR库
您可以开发一个库模块,该模块本身包括一个JAR库;
但是,您需要手动编辑从属应用程序模块的内部版本
路径并向JAR文件添加路径。
如果可能的话,我真的想把罐子放在aar里面。
如有必要,我会提供更多信息。