アプリを強制終了した後のAPI応答のnullオブジェクト参照。アプリのログアウトが適切に機能する場合

レオ・ジョニー・セイル

アプリが手動で強制終了され、更新を送信しようとすると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]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ