我有Android gradle项目,它由主模块和纯java库组成。 Java库有一个jar文件的依赖(GSON在这里显示仅用于演示目的):Android java模块“jar”文件依赖问题
该项目编译正常,但当我尝试运行它,它失败NoClassDefFoundError
:
java.lang.NoClassDefFoundError: com.google.gson.Gson
at com.example.JavaLibClass.javaMethod(JavaLibClass.java:7)
at com.denisk.deptest.MainActivity.onCreate(MainActivity.java:15)
at android.app.Activity.performCreate(Activity.java:5135)
如果我用常规的Maven依赖关系替换jar
依赖项,它将起作用。
如果我摆脱javalib
到app
jar
依赖,并介绍在活动依赖Gson
依赖,它的工作原理。
应用程序/的build.gradle依赖性:
dependencies {
compile project(':javalib')
}
javalib /的build.gradle:
apply plugin: 'java'
dependencies {
compile files('libs/gson-2.2.4.jar')
}
MainActivity的onCreate
(内侧app
):
@Override
protected void onCreate(Bundle savedInstanceState) {
JavaLibClass javaLibClass = new JavaLibClass();
javaLibClass.javaMethod();
}
JavaLibClass(内javalib
):
public class JavaLibClass {
public void javaMethod() {
Gson gson = new Gson();
}
}
Github上库与演示项目:
https://github.com/denisk20/android-gradle-dependency-test
我是不是做错了什么或者是一个错误吗?
编辑1: 不要紧,我是否建立与Android Studio或纯摇篮。
编辑2: 我已经尝试过使用AOSP的android gradle插件1.4.0-beta4
- 同样的错误。
它已经有一段时间了,因为我不得不使用jar而是IIRC,所以你需要将它列在你的依赖的'compile files('libs/gson-2.2.4。罐')',我可能是错误的,虽然 – tyczj
@tyczj比的建议,但它不会改变任何东西。 –
Android问题跟踪器中的类似问题: https://code.google.com/p/android/issues/detail?id=186012 –