2016-12-14 10 views
0

彼女の中にこのエラーで毎回アプリケーションがクラッシュMainActivity.javaエラー:アクティビティComponentInfoをインスタンス化できません。 LOgCAT

public class MainActivity extends AppCompatActivity implements View.OnClickListener{ 

    FrameLayout cat1 = (FrameLayout) findViewById(R.id.cat1); 

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

    cat1.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Intent i = new Intent(MainActivity.this,Wallpapers.class); 
      startActivity(i); 
     } 
    }); 
    } 

@Override 
public void onClick(View view) { 

} 

}

ここでは、マニフェストコード

<?xml version="1.0" encoding="utf-8"?> 

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 
    <activity android:name="com.example.akkie.customize.MainActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

    <activity android:name="com.example.akkie.customize.Wallpapers"> 

     </activity> 
</application> 
<supports-screens android:largeScreens="true" 
    android:smallScreens="true" 
    android:normalScreens="true" 
    android:xlargeScreens="true" 
    android:compatibleWidthLimitDp="320"/> 

です送信信号:

ここlogcat

E/AndroidRuntime: FATAL EXCEPTION: main 
       Process: com.example.akkie.customize, PID: 3969 
       java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.akkie.customize/com.example.akkie.customize.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:3133) 
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3416) 
        at android.app.ActivityThread.access$1100(ActivityThread.java:230) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1822) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:148) 
        at android.app.ActivityThread.main(ActivityThread.java:7409) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) 
       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.AppCompatDelegate.create(AppCompatDelegate.java:203) 
        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 com.example.akkie.customize.MainActivity.<init>(MainActivity.java:16) 
        at java.lang.Class.newInstance(Native Method) 
        at android.app.Instrumentation.newActivity(Instrumentation.java:1096) 
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3123) 
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3416)  
        at android.app.ActivityThread.access$1100(ActivityThread.java:230)  
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1822)  
        at android.os.Handler.dispatchMessage(Handler.java:102)  
        at android.os.Looper.loop(Looper.java:148)  
        at android.app.ActivityThread.main(ActivityThread.java:7409)  
        at java.lang.reflect.Method.invoke(Native Method)  
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)  
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)  

I /プロセスです。 PID:3969 SIG:9 アプリケーションが終了しました。

私は適切な答えのためにstackoverflowを検索しましたが、私のシナリオに一致するものはありません。私ができるすべてのソリューションと変更を試しました。助けてください。

答えて

2

移動:onCreate()でごsetContentView()呼び出し後

FrameLayout cat1 = (FrameLayout) findViewById(R.id.cat1); 

。あなたはまだ存在しないものを見つけることはできません。

+0

したがって、NullPointerException –

+0

はい。感謝します。これはうまくいった。 :) – akkie4396

0

setContentViewを呼び出す前にfindViewByIdに電話をかけているという問題があります。

setContentViewの後にonCreateメソッドにfindViewByIdを移動します。

public class MainActivity extends AppCompatActivity implements View.OnClickListener{ 

    FrameLayout cat1; 

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

    cat1.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Intent i = new Intent(MainActivity.this,Wallpapers.class); 
      startActivity(i); 
     } 
    }); 
    } 

@Override 
public void onClick(View view) { 

} 

} 
関連する問題