Android 改装无法创建呼叫适配器
这是我的用户服务接口Android 改装无法创建呼叫适配器,android,retrofit,rx-java,retrofit2,Android,Retrofit,Rx Java,Retrofit2,这是我的用户服务接口 @GET(Constants.Api.URL_LOGIN) String loginUser(@Field("email") String email, @Field("password") String pass, @Field("secret") String secret, @Field("device_id") String deviceid, @Field("pub_key") String pubkey, @Field("device_name") S
@GET(Constants.Api.URL_LOGIN)
String loginUser(@Field("email") String email, @Field("password") String pass, @Field("secret") String secret, @Field("device_id") String deviceid, @Field("pub_key") String pubkey, @Field("device_name") String devicename);
@GET(Constants.Api.URL_LOGIN)
Call< String> loginUser(@Field("email") String email, @Field("password") String pass, @Field("secret") String secret, @Field("device_id") String deviceid, @Field("pub_key") String pubkey, @Field("device_name") String devicename);
在我打电话的活动中
retrofit = new Retrofit.Builder()
.baseUrl(Constants.Api.URL_BASE)
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.build();
service = retrofit.create(UserService.class);
String status = service.loginUser(loginedt.getText().toString(), passwordedt.getText().toString(), secret, device_id, pub_key, device_name);
这将创建一个异常
java.lang.IllegalArgumentException: Unable to create call adapter for class java.lang.String
for method UserService.loginUser
我做错了什么
格拉德尔:
compile 'com.squareup.retrofit:retrofit:2.+'
compile 'com.squareup.retrofit:adapter-rxjava:2.0.0-beta1'
compile 'com.squareup.retrofit:converter-gson:2.0.0-beta1'
由于您已经包含了
addCallAdapterFactory(RxJavaCallAdapterFactory.create())
,因此您希望使用observatable
来管理您的调用。在您的界面中,显式地给出参数化的可观察的
,而不是调用
——
Aleksei,如果您需要最简单的解决方案从改装库中获取字符串结果,那么您必须执行以下几个调用:
compile 'com.squareup.retrofit2:retrofit:2.0.0-beta4'
compile 'com.squareup.retrofit2:converter-scalars:2.0.0-beta4'
@GET(Constants.Api.URL_LOGIN)
String loginUser(@Field("email") String email, @Field("password") String pass, @Field("secret") String secret, @Field("device_id") String deviceid, @Field("pub_key") String pubkey, @Field("device_name") String devicename);
@GET(Constants.Api.URL_LOGIN)
Call< String> loginUser(@Field("email") String email, @Field("password") String pass, @Field("secret") String secret, @Field("device_id") String deviceid, @Field("pub_key") String pubkey, @Field("device_name") String devicename);
SERVICE_INSTANCE.loginUser(*all your params*).execute().body();
SERVICE_INSTANCE.loginUser(*all your params*).execute().body();