2017-05-16 14 views
-1

には誤りがありません。私の新しいアプリは(私が代わりに仮想マシンの場合は自分の携帯電話を使用しています)自分の携帯電話にクラッシュされますが、コードは右ここ私の新しいアプリが電話でクラッシュが、私はアンドロイド、現像に新しいですコード

05-16 17:36:52.717 28823-28823/ebin.namez I/art: Late-enabling -Xcheck:jni 
05-16 17:36:52.728 27804-27886/? I/PBSessionCacheImpl: Deleted sessionId[122284780131059156] from persistence. 
05-16 17:36:52.778 28823-28823/ebin.namez W/System: ClassLoader referenced unknown path: /data/app/ebin.namez-2/lib/arm64 
05-16 17:36:52.800 28823-28823/ebin.namez D/AndroidRuntime: Shutting down VM 
05-16 17:36:52.801 28823-28823/ebin.namez E/AndroidRuntime: FATAL EXCEPTION: main 
Process: ebin.namez, PID: 28823 
    java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{ebin.namez/ebin.namez.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.Window$Callback android.view.Window.getCallback()' on a null object reference 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2583) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2742) 
     at android.app.ActivityThread.-wrap12(ActivityThread.java) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1489) 
     at android.os.Handler.dispatchMessage(Handler.java:102) 
     at android.os.Looper.loop(Looper.java:154) 
     at android.app.ActivityThread.main(ActivityThread.java:6178) 
     at java.lang.reflect.Method.invoke(Native Method) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:891) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:781) 
    Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.Window$Callback android.view.Window.getCallback()' on a null object reference 
     at android.support.v7.app.AppCompatDelegateImplBase.<init>(AppCompatDelegateImplBase.java:116) 
     at android.support.v7.app.AppCompatDelegateImplV9.<init>(AppCompatDelegateImplV9.java:147) 
     at android.support.v7.app.AppCompatDelegateImplV11.<init>(AppCompatDelegateImplV11.java:27) 
     at android.support.v7.app.AppCompatDelegateImplV14.<init>(AppCompatDelegateImplV14.java:53) 
     at android.support.v7.app.AppCompatDelegateImplV23.<init>(AppCompatDelegateImplV23.java:29) 
     at android.support.v7.app.AppCompatDelegateImplN.<init>(AppCompatDelegateImplN.java:29) 
     at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:201) 
     at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:185) 
     at android.support.v7.app.AppCompatActivity.getDelegate(AppCompatActivity.java:525) 
     at android.support.v7.app.AppCompatActivity.findViewById(AppCompatActivity.java:193) 
     at ebin.namez.MainActivity.<init>(MainActivity.java:36) 
     at java.lang.Class.newInstance(Native Method) 
     at android.app.Instrumentation.newActivity(Instrumentation.java:1079) 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2573) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2742)  
     at android.app.ActivityThread.-wrap12(ActivityThread.java)  
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1489)  
     at android.os.Handler.dispatchMessage(Handler.java:102)  
     at android.os.Looper.loop(Looper.java:154)  
     at android.app.ActivityThread.main(ActivityThread.java:6178)  
     at java.lang.reflect.Method.invoke(Native Method)  
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:891)  
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:781) ` 

を助けてくださいされていることは、これはMainActivity

package ebin.namez; 

import android.os.Bundle; 
import android.support.design.widget.FloatingActionButton; 
import android.support.design.widget.Snackbar; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.Toolbar; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.Button; 
import android.widget.TextView; 


public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 

     FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 
     fab.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       Snackbar.make(view, "nothing", Snackbar.LENGTH_LONG) 
         .setAction("Action", null).show(); 

      } 
     }); 
    } 
    TextView op; 
    { 
     op=(TextView)findViewById(R.id.op); 
    } 
    Button button; 

    { 
     button = (Button) findViewById(R.id.button); 
     button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       op.setText("hey"); 
      } 
     }); 
    } 



    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.menu_main, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle action bar item clicks here. The action bar will 
     // automatically handle clicks on the Home/Up button, so long 
     // as you specify a parent activity in AndroidManifest.xml. 
     int id = item.getItemId(); 

     //noinspection SimplifiableIfStatement 
     if (id == R.id.action_settings) { 
      return true; 
     } 

     return super.onOptionsItemSelected(item); 
    } 
} 

するためのコードですボタンを押したときに "ちょっと"と表示される簡単なプログラム

+2

[NullPointerExceptionがある何を、と私はそれを修正しますか?]の可能性のある重複します(http:/ /stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i-fix-it) –

+3

'...しかし、コードが正しいです...'いや、**それは*ありません*。それはNPEを引き起こすからです。 –

+1

@Rotwang NPEはOPコードに直接記述されていないため、他の質問に記載されているメソッドでは問題を解決するには不十分であるため、正式なNPE質問の複製ではありません。 njzk2 @ – njzk2

答えて

1

エラーは、ebin.namez.MainActivity.<init>(MainActivity.java:36)にNullPointerExeceptionがあると言います。あなたがコード1:1を掲示したならば、それはinitializer blockにあるop=(TextView)findViewById(R.id.op)という行です。

活動が正しくセットアップされる前に、このブロックは、インスタンスの作成時に実行されます。アクティビティコンポーネントであり、そのライフサイクルはonCreateで始まり、そのインスタンスの作成にコンポーネントのプロパティとfindViewByIdのようなメソッドにアクセスすることはかなり悪い考えです。

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     ... 
    } 

    // Member op 
    TextView op; 

    // initializer block: executed on instance creation 
    { 
     op=(TextView)findViewById(R.id.op); // Line 36 
    } 
... 
} 

あなたはおそらく、そうのようonCreate方法でopbuttonのためにそのコードを望んでいた:

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    ... 

    // local variable op, declared final for use in anonymous class method 
    final TextView op = (TextView)findViewById(R.id.op); 

    // local variable button 
    Button button; 
    button = (Button) findViewById(R.id.button); 
    button.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      op.setText("hey"); 
     } 
    }); 
} 
+0

ありがとうございました –

関連する問題