APIに接続されたアンドロイドアプリがあり、正常にログインしています。ログインボタンを押してログインアクティビティに戻ります。再び、アプリケーションがクラッシュし、私にNullPointerExceptionを与えます。再ログインしようとするとAndroidアプリがクラッシュする
は、ここで接続コード
private void loginUser(String email, String password) {
UnifyAuthenticationApiInterface service = this.client.create(UnifyAuthenticationApiInterface.class);
Call<UnifyAuthenticationApiResponse> call = service.staffLogin(email, password);
call.enqueue(new Callback<UnifyAuthenticationApiResponse>() {
@Override
public void onResponse(Call<UnifyAuthenticationApiResponse> call,
Response<UnifyAuthenticationApiResponse> response) {
UnifyAuthenticationApiResponse result = response.body();
School school = new School();
com.peterstev.unify.login.Data data = result.getData();
mySchoolsList = new ArrayList<School>();
mySchoolsList = data.getSchools();
staff = data.getStaff();
gotoHomeActivity();
}
@Override
public void onFailure(Call<UnifyAuthenticationApiResponse> call, Throwable t) {
progressDialog.dismiss();
Toast.makeText(MainActivity.this, "Login Failed @ onFailure", Toast.LENGTH_SHORT).show();
}
});
}
だとgoToHomeActivity()はNullPointerExceptionが最初に
com.peterstev.unify.login.Data data = result.getData();
で投げます
private void gotoHomeActivity() {
progressDialog.dismiss();
if (mySchoolsList.size() > 1) {
schoolsListView = new ListView(MainActivity.this);
schoolsArrayAdapter = new SchoolListAdapter(MainActivity.this, android.R.layout.simple_list_item_1, mySchoolsList);
schoolsListView.setAdapter(schoolsArrayAdapter);
dialog = new Dialog(MainActivity.this);
dialog.setContentView(schoolsListView);
dialog.setTitle("Welcome " + staff.getFullName());
dialog.show();
} else {
Intent intent = new Intent(MainActivity.this, NavMainActivity.class);
startActivity(intent);
}
}
あり、それは、データのn個の正常ログを取得しますしかし、私はバックボタンを使用してnをもう一度ログインしようとするとクラッシュします。
バックエンドコールが返す内容を知ることはできません。ブレークポイントをNPEの行に配置し、デバッグモードで実行します。次にresultがnullであることを確認してください。おそらく、ログインを頻繁に呼び出すための何らかの保護手段でしょう。郵便配達員または同様のツールを使用してこの状況を再現してください。 – 3mpty
戻るボタンをクリックしてすべてのデータを消去していますか? @Light –
私はデータをクリアしません。または私が戻ったときにアクティビティを再作成する必要がありますか? { "スタッフ":{ "school_id": "xxxxxxxxxxxxxxxxxxxx"、 "電子メール": "xxxxxxxxxxxxxxxxxxxx"、 "api_token":「xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx郵便配達と3mpty @ @Partha – Light