java.lang.NullPointerException bei Button Click

  • Antworten:9
Julian Wöhrer
  • Forum-Beiträge: 3

15.04.2015, 16:10:06 via Website

Hallo zusammen
Ich bin dabei mir eine kleine App zu programmieren.
Ich habe ein button eingebaut und wenn auf den geklickt wirs soll eine neue Activity öffnen.
Das ganze hat auch schonmal funktioniert. Nur leider bekomm ich jetzt immer wieder die selber Fehlermeldung
java.lang.NullPointerException

public class MainActivity extends ActionBarActivity {

public void ohmlawopen(View view) {
    Intent in = new Intent(this, ohm_law.class);
    startActivity(in);
}
}



    <Button
    android:layout_width="150dp"
    android:layout_height="80dp"
    android:text="@string/work"
    android:id="@+id/button2"
    android:onClick="ohmlawopen"
    android:layout_alignBottom="@+id/ohm_law"
    android:layout_alignRight="@+id/adView"
    android:layout_alignEnd="@+id/adView"/>

— geändert am 15.04.2015, 16:11:58

Antworten
Gelöschter Account
  • Forum-Beiträge: 2.492

15.04.2015, 16:42:37 via Website

Da ich das nie mit dem onClick in der xml Datei mache, sondern in der Activity einen onClickListener einbaue (würde ich dir auch empfehlen) bin ich mir nicht sicher, aber hast du den Button in der onCreate() schon initialisiert? Also button2 = (Button) findViewBy...

Antworten
Julian Wöhrer
  • Forum-Beiträge: 3

15.04.2015, 17:04:40 via Website

Ich habe beide Varianten schon getestet.
Es stürzt trotzdem ab
Woran könnte es noch liegen?

MainActivity.java

package de.com.woehrer.e_formelrechner;



public class MainActivity extends ActionBarActivity {
Button work;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    work = (Button) findViewById(R.id.work);


    work.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            startActivity(new Intent(MainActivity.this, arbeit.class));

        }
    });



    AdView mAdView = (AdView) findViewById(R.id.adView);
    AdRequest adRequest = new AdRequest.Builder().build();
    mAdView.loadAd(adRequest);
}

public void ohmlawopen(View view) {
    Intent in = new Intent(this, ohm_law.class);
    startActivity(in);
}
public void workopen(View view) {
;
}
@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);
}
}

activity_main.xrnl

<RelativeLayout xmlns:android="Link"
xmlns:tools="Link"
xmlns:ads="Link"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">

<TextView android:text="@string/hello_world" android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/textView2" />


<com.google.android.gms.ads.AdView
    android:id="@+id/adView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_alignParentBottom="true"
    ads:adSize="BANNER"
    ads:adUnitId="@string/banner_ad_unit_id">
</com.google.android.gms.ads.AdView>

<Button
    android:layout_width="150dp"
    android:layout_height="80dp"
    android:text="@string/ohm_law"
    android:id="@+id/ohm_law"
    android:layout_below="@+id/textView2"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:onClick="ohmlawopen"/>

<Button
    android:layout_width="150dp"
    android:layout_height="80dp"
    android:text="@string/work"
    android:id="@+id/work"
    android:layout_alignBottom="@+id/ohm_law"
    android:layout_alignRight="@+id/adView"
    android:layout_alignEnd="@+id/adView"/>

Antworten
Gelöschter Account
  • Forum-Beiträge: 2.492

15.04.2015, 17:14:19 via Website

Hast du die zweite Activity ins Manifest eingetragen?
Und schau mal im Logcat in welcher Zeile die NPE kommt.

— geändert am 15.04.2015, 17:15:03

Antworten
Julian Wöhrer
  • Forum-Beiträge: 3

16.04.2015, 15:59:41 via Website

04-16 15:52:23.940  10637-10637/de.com.woehrer.e_formelrechner E/﹕ Device driver API match
Device driver API version: 23
User space API version: 23
04-16 15:52:23.940  10637-10637/de.com.woehrer.e_formelrechner E/﹕ mali: REVISION=Linux-r3p2-01rel3 BUILD_DATE=Wed Oct 30 09:36:10 KST 2013
04-16 15:52:39.730  10637-10637/de.com.woehrer.e_formelrechner E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{de.com.woehrer.e_formelrechner/de.com.woehrer.e_formelrechner.arbeit}: java.lang.NullPointerException
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2295)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2349)
        at android.app.ActivityThread.access$700(ActivityThread.java:159)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1316)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:137)
        at android.app.ActivityThread.main(ActivityThread.java:5419)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:525)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1209)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1025)
        at dalvik.system.NativeStart.main(Native Method)
 Caused by: java.lang.NullPointerException
        at de.com.woehrer.e_formelrechner.arbeit.onCreate(arbeit.java:31)
        at android.app.Activity.performCreate(Activity.java:5372)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1104)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2257)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2349)

            at android.app.ActivityThread.access$700(ActivityThread.java:159)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1316)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:5419)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:525)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1209)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1025)
            at dalvik.system.NativeStart.main(Native Method)

Antworten
Sven R.
  • Forum-Beiträge: 1.904

16.04.2015, 16:40:04 via Website

Julian Wöhrer

 [...] Caused by: java.lang.NullPointerException
        at de.com.woehrer.e_formelrechner.arbeit.onCreate(arbeit.java:31) [...]

Und was steht in der arbeit.java in Zeile 31?

Wenn dir mein Beitrag gefällt, kannst dich einfach mit dem 👍 "Danke"-Button auf der Website dieses Forums bedanken. 😀

Why Java? - Because I can't C#

Antworten
JoboDeveloper
  • Forum-Beiträge: 208

16.04.2015, 16:42:00 via App

Rafael K.

Poste mal den kompletten Stacktrace, da sieht man idR sofort wo es knallt.

Darf ich fragen was ein Stacktrace ist? :-)

LG JoboDeveloper

Antworten