错误
Error:Execution failed for task ':app:dexDebug'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/usr/lib/jvm/java-8-oracle/bin/java'' finished with non-zero exit value 2
我有两个模型类,如下所示。
MovieComments.java
import com.google.gson.annotations.SerializedName;
import java.util.List;
public class MovieComments {
@SerializedName("page")
public int page;
@SerializedName("results")
public List<MovieComment> movieCommentList;
@SerializedName("total_pages")
public int totalPage;
@SerializedName("total_results")
public int totalResults;
}
另一个Model类MovieComment.java
import com.google.gson.annotations.SerializedName;
public class MovieComment {
@SerializedName("id")
public int id;
@SerializedName("author")
public String author;
@SerializedName("content")
public String content;
}
在IMovieService类中的Retrofit Interface。
import retrofit.Call;
import retrofit.http.GET;
import retrofit.http.Path;
import retrofit.http.Query;
public interface IMovieService {
@GET("3/movie/{id}/reviews")
Call<MovieComments> getComments(@Path("id") int id, @Query("api_key") String apiKey);
}
我将MainActivity中的数据作为:
private void getCommentsFromWeb() {
final MovieComments[] movieComments = new MovieComments[1];
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(Constants.MOVIE_BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
IMovieService iMovieService = retrofit.create(IMovieService.class);
Call<MovieComments> movieCommentsCall = iMovieService.getComments(movie.id, Constants.API_KEY);
movieCommentsCall.enqueue(new retrofit.Callback<MovieComments>() {
@Override
public void onResponse(Response<MovieComments> response) {
movieComments[0] = response.body();
Log.e(TAG, "data" + movieComments[0].page);
}
@Override
public void onFailure(Throwable t) {
}
});
}
在build.gradle中
compile 'com.squareup.retrofit:retrofit:2.0.0-beta1'
compile 'com.squareup.retrofit:converter-gson:2.0.0-beta1'
compile files('libs/gson-2.2.4.jar')
答案 0 :(得分:1)
Gradle可能在解决项目的依赖关系方面存在问题,因为您通过maven编译改进的gson转换器,但gson本身来自jar
文件。
代替compile files('libs/gson-2.2.4.jar')
交换compile 'com.google.code.gson:gson:2.3.1'
。 Maven应该能够正确处理依赖关系。
编辑:实际上我认为你可以完全跳过gson
依赖。 gson-converter
也包括它