it-swarm.com.de

java.lang.NullPointerException: Versuch, die virtuelle Methode 'int Android.view.ViewGroup.getPaddingLeft ()' für eine Nullobjektreferenz aufzurufen

Ich versuche, mit einem Intent eine Aktivität zu starten, aber der erwähnte Fehler tritt bei setContentView () der zweiten Aktivität auf.

Hier sind mein Code und die Layoutdatei.

itemactivity.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_height="match_parent"
    Android:layout_width="match_parent"
    Android:orientation="vertical">

</LinearLayout>

Hauptaktivität:

Intent i=new Intent(MainActivity.this,ItemActivity.class);
startActivity(i);

ItemActivity:

@Override
protected void onCreate(Bundle savedInstanceState) {
    setContentView(R.layout.itemactivity); // this is where error occurs
    super.onCreate(savedInstanceState);
}

Hier ist das vollständige Fehlerprotokoll:

Java.lang.RuntimeException: Unable to start activity         ComponentInfo{bertaberim.team.beertaberim/bertaberim.team.beertaberim.ItemActivity}: Java.lang.NullPointerException: Attempt to invoke virtual method 'int Android.view.ViewGroup.getPaddingLeft()' on a null object reference
11-04 23:01:20.621 20634-20634/? E/AndroidRuntime:     at    Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:3119)
11-04 23:01:20.621 20634-20634/? E/AndroidRuntime:     at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:3218)
11-04 23:01:20.621 20634-20634/? E/AndroidRuntime:     at Android.app.ActivityThread.access$1000(ActivityThread.Java:198)
11-04 23:01:20.621 20634-20634/? E/AndroidRuntime:     at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1676)
11-04 23:01:20.621 20634-20634/? E/AndroidRuntime:     at Android.os.Handler.dispatchMessage(Handler.Java:102)
11-04 23:01:20.621 20634-20634/? E/AndroidRuntime:     at Android.os.Looper.loop(Looper.Java:145)
11-04 23:01:20.621 20634-20634/? E/AndroidRuntime:     at Android.app.ActivityThread.main(ActivityThread.Java:6837)
11-04 23:01:20.621 20634-20634/? E/AndroidRuntime:     at Java.lang.reflect.Method.invoke(Native Method)
11-04 23:01:20.621 20634-20634/? E/AndroidRuntime:     at Java.lang.reflect.Method.invoke(Method.Java:372)
11-04 23:01:20.621 20634-20634/? E/AndroidRuntime:     at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:1404)
11-04 23:01:20.621 20634-20634/? E/AndroidRuntime:     at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:1199)
7
alireza_fn

Sie müssen zuerst super.onCreate() aufrufen, um alle erforderlichen Initialisierungen für die Aktivität durchzuführen, bevor Sie die Ansicht festlegen. Kippen Sie einfach diese beiden Zeilen um:

super.onCreate(savedInstanceState);
setContentView(R.layout.itemactivity); // this is where error occurs

Weitere Informationen zur Funktionsweise dieser Methode finden Sie unter Diese Antwort .

13
AdamMc331

Du solltest es nach allen Views fertig benutzen, du kannst es nach super.onResume () aufrufen

0
bobby