アプリが手動で強制終了され、更新を送信しようとするとnullPointerException
、API応答が返されます。正しくログアウトすれば正常に動作します。入力値をログに記録しましたが、すべて問題ありません。誰でもこのコードを見てください
これは私のAPIアップデートです。
private void updateFb(final String shop, final String phone,final String user_ids,final String lat, String lon,final String feedb) {
Log.i("TAG", shop+","+phone+","+user_ids+","+lat+","+lon+","+feedb);
new RetrofitHelper(MainActivity.this)
.getApIs()
.feedback(shop,phone,user_ids,lat,lon,feedb)
.enqueue(new Callback<JsonElement>()
{
@Override
public void onResponse(Call<JsonElement> call, Response<JsonElement> response) {
try {
JSONObject jsonObject=new JSONObject(response.body().toString());
String status=jsonObject.getString("status");
String date_time=jsonObject.getString("dt_time");
if (status=="Failed"){
Toasty.error(MainActivity.this, "Updating Failed", Toast.LENGTH_SHORT).show();
}
else {
shopName.setText("");
feedback.setText("");
phoneEdt.setText("");
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
Toasty.success(MainActivity.this, "Success", Toast.LENGTH_SHORT).show();
}
} catch (JSONException e) {
e.printStackTrace();
}
}
@Override
public void onFailure(Call<JsonElement> call, Throwable t) {
}
});
// API interface
@FormUrlEncoded
@POST("/web-api/insert_shop.php?")
Call<JsonElement>feedback(@Field("shop_name") String shopName,@Field("phone")String phone, @Field("user_id") String user_id,
@Field("pos_lat") String pos_lat, @Field("pos_long") String pos_lon, @Field("feedback") String feedback);
私が得た応答。
java.lang.NullPointerException:インターフェイスメソッド 'retrofit2.Callを呼び出そうとしましたcom.example.user.comcubeassist.retrofit.APIs.feedback(java.lang.String、java.lang.String、java.lang.String、java.lang nullオブジェクト参照の.String、java.lang.String、java.lang.String) '
の値new RetrofitHelper(MainActivity.this).getApIs()
はnull
であるため、feedback
メソッドにアクセスしようとすると、null参照がスローされます。getApIs()
メソッドを確認し、それが返される理由を確認しnull
ます。
編集ログインページでRefrofitクライアントを初期化していると思います。したがって、アプリを強制終了して再度開くと、nullが返されます。ホーム画面でクライアントを初期化してみてください
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加