2017-12-29 10 views
-2

するとアプリが起動し、私はすぐにそれは私に、このエラーを与える画面を回転させてみてください。NullPointerExceptionがonDestory

public void onDestroy() { 
     super.onDestroy(); 
     appbars.animate().translationY(0).alpha(1).setDuration(100).setInterpolator(new DecelerateInterpolator()); 

    } 

エラー:

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.ViewPropertyAnimator 
android.support.design.widget.AppBarLayout.animate()' on a null object 
reference 
+0

AppBarLayoutが初期化されないことがあります(findViewById) –

答えて

1

あなたappbarsがnullであるかどうか確認し、これを試してみてくださいこのように

public void onDestroy() { 
    super.onDestroy(); 
     if(appbars!=null) { 
     appbars.animate().translationY(0).alpha(1).setDuration(100).setInterpolator(new DecelerateInterpolator()); 
    } 
+0

私はその理由を知っているかもしれませんforvolution – Prem

1
public void onDestroy() { 
     super.onDestroy(); 
     if(appbars!=null){ // use this 
    appbars.animate().translationY(0).alpha(1).setDuration(100).setInterpolator(new DecelerateInterpolator()); 

    } 
1

あなたのappbarsは破壊され、それ以上存在しません。また、パフォーマンスを向上させるには、onPause()で停止作業を移動する必要があります。

活動のライフサイクル:

enter image description here

+0

仲間のメンバーが示唆したように、 'AppBarLayout'の前に' onDestroy'がトリガされました。ロードされたので、私はNULLポインタエラーを受け取りました – Fresco

+0

私はあなたのコードで悪い練習について教えてくれました。これを避ける方法を知りたい場合は、以下の例をあげる必要があります。 GLとHF –

+0

もし私が 'onDestory'を使わないのであれば、このコードを他のタブにも実装する必要があります。あなたの提案をありがとう – Fresco

1

..

public void onDestroy() { 
    super.onDestroy(); 
    if(appbars!=null) { 
     appbars.animate().translationY(0).alpha(1).setDuration(100).setInterpolator(new DecelerateInterpolator()); 
    } 
} 

・ホープ、このことができます。これを試す