如果我的android项目依赖于具有其他依赖关系的.jar,我是否必须在项目中包含这些依赖项?

时间:2015-05-18 18:50:24

标签: java android gradle dependencies noclassdeffounderror

我在Android项目中遇到错误,我不确定如何处理它。我有一个依赖于Retrofit的.jar。我对那个使用Retrofit功能并且运行成功的Jar进行了单元测试。

我还有一个依赖于那个jar的android库项目,当我尝试调用.jar中定义的方法时,我得到如下错误:

java.lang.NoClassDefFoundError: Failed resolution of: Lretrofit/RestAdapter$Builder;
at com.geoff.sdk.java.clients.RetrofitApiClient.<init>(RetrofitApiClient.java:17)
at com.geoff.sdk.java.clients.RetrofitApiClient.getInstance(RetrofitApiClient.java:29)
at com.geoff.sdk.java.clients.RetrofitApiClient.getRestAdapter(RetrofitApiClient.java:36)

我可以通过在我的Android库的build.gradle文件中添加“compile'c​​om.squareup.retrofit:retrofit:1.9.0'”来解决这个问题,但似乎应该有办法使用这个Jar不包括它再次需要的依赖项。我认为在我的Java项目中如何声明我的依赖项可能有些不太正确,但我不确定如何修复它。

我在java项目中所做的就是添加:“compile'c​​om.squareup.retrofit:retrofit:1.9.0'”到build.gradle的我的依赖项部分。

我的印象是依赖关系被自动导出,为什么这似乎不是这样?我该如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

如果您将其添加到Grade.build文件/ Maven中,则答案为否。