【发布时间】:2017-07-14 22:29:57
【问题描述】:
我有一个问题
“java.lang.NoClassDefFoundError:解析失败:Lorg/apache/commons/lang/StringUtils;”
当我尝试运行依赖于我自己的 android 库的 android 应用程序时。
以下是我的步骤:
创建了一个android项目,然后在其中构建了一个名为“sptvlib”的新模块。
此模块依赖于名为“common-lang”的第 3 方库,它是一个 String utils 库。请参阅“sptvlib”gradle 文件:
dependencies {
...
compile 'org.apache.directory.studio:org.apache.commons.lang:2.6'
...
}
构建整个项目后,我得到了模块sptvlib.aar文件,并将其复制到另一个android应用项目的“libs”目录中。
repositories {
flatDir {
dirs 'libs'
}
}
dependencies {
...
compile(name: 'sptvlib', ext: 'aar')
...
}
我成功构建了这个应用程序,但是当它运行时,logcat 显示“java.lang.NoClassDefFoundError”错误。 我必须将“commons.lang”声明重新添加到应用程序项目 gradle,然后它运行正常......我们已将第 3 方库添加到我的模块中,使用“已编译”。为什么依赖我自己的模块的应用程序仍然无法在运行时找到它?
【问题讨论】: