当前位置: 首页 > 知识库问答 >
问题:

无法在Android改版中为我的类创建转换器

庄元龙
2023-03-14

我正在尝试用改进的方法来开发clent-server应用程序。我的应用程序用字符串“image”发送到服务器json,并用字段“name”的字符串响应json。

我的API:

public interface API {
    @FormUrlEncoded
    @POST("/api/classification/imagenet")
    Call<GestureJson> getName(@Body ImageJson json);
}
public class ImageJson {
    public String imageString;
}
public class NameJson {
    public int gestureNumber;
}
public void MyVoid() {
        String requestUrl = url;
        Retrofit retrofit = new Retrofit.Builder()
                .addCallAdapterFactory(GsonConverterFactory.create())
                .baseUrl(requestUrl)
                .build();
        API api = retrofit.create(API.class);
        ImageJson json = new ImageJson();
        json.imageString = image_uri.toString();
        Call<GestureJson> call = api.getName(json);
        call.enqueue(new Callback<GestureJson>() {
            @Override
            public void onResponse(Call<GestureJson> call, Response<GestureJson> response) {
                if (response.isSuccessful()) {
                    status = RESPONSE_SUCCESS;
                } else {
                    status = RESPONSE_FAIL;
                }
            }

            @Override
            public void onFailure(Call<GestureJson> call, Throwable t) {

            }
        });

2).AddCallAdapterFactory(gsonConverterFactory.create())在Retorfit和retorfit2中强调了错误程度。

3)如果删除.AddCallAdapterFactory(GSONConverterFactory.Create())我可以编译应用程序。但是我有一个问题:

E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.opencvproject, PID: 17742
java.lang.IllegalArgumentException: Unable to create converter for class com.example.opencvproject.GestureJson
    for method API.getGesture

共有1个答案

阴永福
2023-03-14
  1. Retrofit2更好,因为Retrofit已过时(上一个版本是在2014 https://github.com/square/Retrofit/releases/tag/parent-1.6.0)。名称中的第2号只是一个库版本。
  2. 由于您没有添加依赖项com.squareup.retrofit2:converter-gson
  3. ,所以可能会在GSONConverterFactory中加上下划线
  4. 如果删除AddCallAdapterFactory(GSONConverterFactory.create()),那么改进型将不知道如何将json反序列化为对象。GsonConverterFactory在引擎盖下使用Gson libarary(https://github.com/google/Gson)反序列化服务器json响应。
 类似资料:
  • 最后是宠物类,它应该是reponse:

  • 我正在使用、和,我真的不知道是什么导致了这个错误,但是它只发生在release apk中,当是时,所以我猜这是一个发布的proguard但是我不知道到底是什么问题。 我的错误是: 下面是: 和: 最后是我的Proguard文件:

  • 但每次我都收到异常:创建@body转换器 我怎么送?或者其他我能做到的想法。您甚至可以向我提供包含json的简单参数。这对我很合适

  • 我在我的应用程序和Gson转换器中使用了改型。我想使用数据库时,没有互联网连接。我决定用糖兽。但我得到一个。 java.lang.IllegalArgumentException:无法为类创建转换器

  • 我在使用ActiveAndroid对API调用和数据库进行修改。在Pre6.0的Android设备上,一个应用程序可以很好地工作。无法确定根本原因。 改装2 Beta-4。Android6。无法创建转换器 我不明白为什么要使用gson或gsonbuilder? 感谢任何帮助。

  • 我在MoshiConverterFactory和restfit上遇到了一个问题--我不能将POST JSON请求发送到RestAPI,因为它总是导致错误。我可以用Multipart成功地做到这一点,但API不支持它,所以这是不可能的... 我已经尝试做了什么:在我的AuthData类的参数上添加注释(错误仍然相同),传递多部分和表单URL编码的数据(API不支持)。有人看到我做错了什么吗?我也没有