Android java模块“jar”文件依赖问题

我有
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依赖,它就可以工作.

如果我将jar依赖从javalib移动到app并在活动中引入依赖Gson依赖,它就可以工作.

app / build.gradle依赖项:

dependencies {
    compile project(':javalib')
}

javalib /的build.gradle:

apply plugin: 'java'

dependencies {
    compile files('libs/gson-2.2.4.jar')
}

MainActivity的onCreate(内部应用程序):

@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还是使用纯Gradle构建,都无关紧要.

编辑2:
我已经尝试过来自AOSP的android gradle插件1.4.0-beta4 – 同样的错误.

最佳答案 无法加载的类可能缺少自己的依赖项.令人讨厌的是,Android 5.1中的VM并没有告诉您依赖是什么.

我发现当我在使用Dalvik VM的旧版Android 2.3设备上运行我的应用程序时,在日志消息中发现了缺少的依赖关系.

点赞