[英]Puzzling java.lang.NullPointerException in Android App
[英]java.lang.NullPointerException on converter app
我目前正在創建一個帶有 API 調用的實時貨幣轉換器應用程序,但是每當我單擊按鈕轉換貨幣時,我的應用程序就會崩潰並且我得到以下行:
java.lang.NullPointerException: Attempt to invoke virtual method 'com.google.gson.JsonObject com.google.gson.JsonObject.getAsJsonObject(java.lang.String)' on a null object reference
at com.example.converterproject.MoneyActivity$1$1.onResponse(MoneyActivity.java:70)
這是我寫的一些代碼:
MoneyButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
RetrofitInterface retrofitInterface = RetrofitBuilder.getRetrofitInstance().create(RetrofitInterface.class);
Call<JsonObject> call = retrofitInterface.getExchangeCurrency(MoneyTo.getSelectedItem().toString());
call.enqueue(new Callback<JsonObject>() {
@Override
public void onResponse(Call<JsonObject> call, Response<JsonObject> response) {
JsonObject res = response.body();
JsonObject rates = res.getAsJsonObject("rates");
double currency = Double.valueOf(MoneyEd.getText().toString());
double multiplier = Double.valueOf(rates.get(MoneyFrom.getSelectedItem().toString()).toString());
double result = currency * multiplier;
MoneyTextView.setText(String.valueOf(result));
}
@Override
public void onFailure(Call<JsonObject> call, Throwable t) {
}
});
}
});
所以顯然JsonObject rates = res.getAsJsonObject("rates");
是導致問題的線路。 我真的不知道如何解決這個問題,所以我會非常感謝一些幫助
看來您的響應是 JsonObject 並且您不需要獲取 res 即 JsonObject => JsonObject res = response.body(); 作為 JsonObject。
所以如果你刪除這一行 JsonObject rates = res.getAsJsonObject("rates"); 並使用 res 代替。 我認為這會奏效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.