Lucas
- Forum-Beiträge: 717
21.01.2014, 20:31:29 via Website
21.01.2014 20:31:29 via Website
Hey Leute,
ich habe heute meine erste AndroidApp mit AndroidStudio geschrieben.
Leider habe ich das Problem, dass mein Quellcode irgendeinen Fehler beinhaltet.
Da ich totaler Anfänger bin komme ich nicht darauf was es sein kann.
Die Debugging-Fehlermeldung lautet folgendermaßen:
Der Quellcode meiner MainActivity.java lautet: (Zeile 31 wo der Fehler auftritt ist markiert)
Der Großteil des Quelltextes war von AdnroidStudio schon so angegeben.
Ich habe nur folgendes hinzugefügt:
Was auch noch hilfreich sein könnte ist der Inhalt meiner fragment_main.xml:
Ich gehe davon aus, dass der Fehler von einem Fortgeschrittenen schnell zu finden sein wird un nur für mich als absoluter Anfänger nicht findbar ist.
Ich würde mich über Hilfe freuen.
Falls die vielen Informationen nicht genug sein sollten, kann ich gerne nachliefern.
MfG
Lucas
ich habe heute meine erste AndroidApp mit AndroidStudio geschrieben.
Leider habe ich das Problem, dass mein Quellcode irgendeinen Fehler beinhaltet.
Da ich totaler Anfänger bin komme ich nicht darauf was es sein kann.
Die Debugging-Fehlermeldung lautet folgendermaßen:
101-21 18:19:58.926 17908-17908/de.lucas.clickgame.firstapp E/AndroidRuntime﹕ FATAL EXCEPTION: main
2 Process: de.lucas.clickgame.firstapp, PID: 17908
3 java.lang.RuntimeException: Unable to start activity ComponentInfo{de.lucas.clickgame.firstapp/de.lucas.clickgame.firstapp.MainActivity}: java.lang.NullPointerException
4 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
5 at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
6 at android.app.ActivityThread.access$800(ActivityThread.java:135)
7 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
8 at android.os.Handler.dispatchMessage(Handler.java:102)
9 at android.os.Looper.loop(Looper.java:136)
10 at android.app.ActivityThread.main(ActivityThread.java:5017)
11 at java.lang.reflect.Method.invokeNative(Native Method)
12 at java.lang.reflect.Method.invoke(Method.java:515)
13 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
14 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
15 at dalvik.system.NativeStart.main(Native Method)
16 Caused by: java.lang.NullPointerException
17 at de.lucas.clickgame.firstapp.MainActivity.onCreate(MainActivity.java:31)
18 at android.app.Activity.performCreate(Activity.java:5231)
19 at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
20 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
21 at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
22 at android.app.ActivityThread.access$800(ActivityThread.java:135)
23 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
24 at android.os.Handler.dispatchMessage(Handler.java:102)
25 at android.os.Looper.loop(Looper.java:136)
26 at android.app.ActivityThread.main(ActivityThread.java:5017)
27 at java.lang.reflect.Method.invokeNative(Native Method)
28 at java.lang.reflect.Method.invoke(Method.java:515)
29 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
30 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
31 at dalvik.system.NativeStart.main(Native Method)
Bisher habe ich herausgefunden, dass folgene Zeile:2 Process: de.lucas.clickgame.firstapp, PID: 17908
3 java.lang.RuntimeException: Unable to start activity ComponentInfo{de.lucas.clickgame.firstapp/de.lucas.clickgame.firstapp.MainActivity}: java.lang.NullPointerException
4 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
5 at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
6 at android.app.ActivityThread.access$800(ActivityThread.java:135)
7 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
8 at android.os.Handler.dispatchMessage(Handler.java:102)
9 at android.os.Looper.loop(Looper.java:136)
10 at android.app.ActivityThread.main(ActivityThread.java:5017)
11 at java.lang.reflect.Method.invokeNative(Native Method)
12 at java.lang.reflect.Method.invoke(Method.java:515)
13 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
14 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
15 at dalvik.system.NativeStart.main(Native Method)
16 Caused by: java.lang.NullPointerException
17 at de.lucas.clickgame.firstapp.MainActivity.onCreate(MainActivity.java:31)
18 at android.app.Activity.performCreate(Activity.java:5231)
19 at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
20 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
21 at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
22 at android.app.ActivityThread.access$800(ActivityThread.java:135)
23 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
24 at android.os.Handler.dispatchMessage(Handler.java:102)
25 at android.os.Looper.loop(Looper.java:136)
26 at android.app.ActivityThread.main(ActivityThread.java:5017)
27 at java.lang.reflect.Method.invokeNative(Native Method)
28 at java.lang.reflect.Method.invoke(Method.java:515)
29 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
30 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
31 at dalvik.system.NativeStart.main(Native Method)
1at de.lucas.clickgame.firstapp.MainActivity.onCreate(MainActivity.java:31)
mir den Hinweis liefert, dass sich der Fehler in der MainActivity.java in Zeile 31 beim erstellen Meines Objekts auftritt.Der Quellcode meiner MainActivity.java lautet: (Zeile 31 wo der Fehler auftritt ist markiert)
1package de.lucas.clickgame.firstapp;
2
3import android.app.AlertDialog;
4import android.support.v7.app.ActionBarActivity;
5import android.support.v7.app.ActionBar;
6import android.support.v4.app.Fragment;
7import android.os.Bundle;
8import android.view.LayoutInflater;
9import android.view.Menu;
10import android.view.MenuItem;
11import android.view.View;
12import android.view.ViewGroup;
13import android.os.Build;
14import android.os.Bundle;
15import android.widget.ProgressBar;
16import android.widget.Button;
17
18public class MainActivity extends ActionBarActivity implements View.OnClickListener {
19
20 ProgressBar bar;
21 Button btn;
22 int i = 1;
23
24
25 @Override
26 protected void onCreate(Bundle savedInstanceState) {
27 super.onCreate(savedInstanceState);
28 setContentView(R.layout.activity_main);
29
30 bar = (ProgressBar)findViewById(R.id.progressBar);
31 bar.setMax(100);
32
33 btn = (Button)findViewById(R.id.button);
34 btn.setOnClickListener(this);
35
36 if (savedInstanceState == null) {
37 getSupportFragmentManager().beginTransaction()
38 .add(R.id.container, new PlaceholderFragment())
39 .commit();
40 }
41 }
42
43 public void onClick(View e){
44 if(e == btn){
45 i += 4;
46 if(i>=100){
47 AlertDialog ad = new AlertDialog.Builder(this).create();
48 ad.setMessage("Du hast gewonnen!!!");
49 ad.show();
50
51 i=0;
52 }
53 bar.setProgress(i);
54 }
55 }
56
57
58 @Override
59 public boolean onCreateOptionsMenu(Menu menu) {
60
61 // Inflate the menu; this adds items to the action bar if it is present.
62 getMenuInflater().inflate(R.menu.main, menu);
63 return true;
64 }
65
66 @Override
67 public boolean onOptionsItemSelected(MenuItem item) {
68 // Handle action bar item clicks here. The action bar will
69 // automatically handle clicks on the Home/Up button, so long
70 // as you specify a parent activity in AndroidManifest.xml.
71 int id = item.getItemId();
72 if (id == R.id.action_settings) {
73 return true;
74 }
75 return super.onOptionsItemSelected(item);
76 }
77
78 /**
79 * A placeholder fragment containing a simple view.
80 */
81 public static class PlaceholderFragment extends Fragment {
82
83 public PlaceholderFragment() {
84 }
85
86 @Override
87 public View onCreateView(LayoutInflater inflater, ViewGroup container,
88 Bundle savedInstanceState) {
89 View rootView = inflater.inflate(R.layout.fragment_main, container, false);
90 return rootView;
91 }
92 }
93
94}
2
3import android.app.AlertDialog;
4import android.support.v7.app.ActionBarActivity;
5import android.support.v7.app.ActionBar;
6import android.support.v4.app.Fragment;
7import android.os.Bundle;
8import android.view.LayoutInflater;
9import android.view.Menu;
10import android.view.MenuItem;
11import android.view.View;
12import android.view.ViewGroup;
13import android.os.Build;
14import android.os.Bundle;
15import android.widget.ProgressBar;
16import android.widget.Button;
17
18public class MainActivity extends ActionBarActivity implements View.OnClickListener {
19
20 ProgressBar bar;
21 Button btn;
22 int i = 1;
23
24
25 @Override
26 protected void onCreate(Bundle savedInstanceState) {
27 super.onCreate(savedInstanceState);
28 setContentView(R.layout.activity_main);
29
30 bar = (ProgressBar)findViewById(R.id.progressBar);
31 bar.setMax(100);
32
33 btn = (Button)findViewById(R.id.button);
34 btn.setOnClickListener(this);
35
36 if (savedInstanceState == null) {
37 getSupportFragmentManager().beginTransaction()
38 .add(R.id.container, new PlaceholderFragment())
39 .commit();
40 }
41 }
42
43 public void onClick(View e){
44 if(e == btn){
45 i += 4;
46 if(i>=100){
47 AlertDialog ad = new AlertDialog.Builder(this).create();
48 ad.setMessage("Du hast gewonnen!!!");
49 ad.show();
50
51 i=0;
52 }
53 bar.setProgress(i);
54 }
55 }
56
57
58 @Override
59 public boolean onCreateOptionsMenu(Menu menu) {
60
61 // Inflate the menu; this adds items to the action bar if it is present.
62 getMenuInflater().inflate(R.menu.main, menu);
63 return true;
64 }
65
66 @Override
67 public boolean onOptionsItemSelected(MenuItem item) {
68 // Handle action bar item clicks here. The action bar will
69 // automatically handle clicks on the Home/Up button, so long
70 // as you specify a parent activity in AndroidManifest.xml.
71 int id = item.getItemId();
72 if (id == R.id.action_settings) {
73 return true;
74 }
75 return super.onOptionsItemSelected(item);
76 }
77
78 /**
79 * A placeholder fragment containing a simple view.
80 */
81 public static class PlaceholderFragment extends Fragment {
82
83 public PlaceholderFragment() {
84 }
85
86 @Override
87 public View onCreateView(LayoutInflater inflater, ViewGroup container,
88 Bundle savedInstanceState) {
89 View rootView = inflater.inflate(R.layout.fragment_main, container, false);
90 return rootView;
91 }
92 }
93
94}
Der Großteil des Quelltextes war von AdnroidStudio schon so angegeben.
Ich habe nur folgendes hinzugefügt:
1bar = (ProgressBar)findViewById(R.id.progressBar)
2 bar.setMax(100);
3
4 btn = (Button)findViewById(R.id.button);
5 btn.setOnClickListener(this);
und2 bar.setMax(100);
3
4 btn = (Button)findViewById(R.id.button);
5 btn.setOnClickListener(this);
1public void onClick(View e){
2 if(e == btn){
3 i += 4;
4 if(i>=100){
5 AlertDialog ad = new AlertDialog.Builder(this).create();
6 ad.setMessage("Du hast gewonnen!!!");
7 ad.show();
8
9 i=0;
10 }
11 bar.setProgress(i);
12 }
13 }
2 if(e == btn){
3 i += 4;
4 if(i>=100){
5 AlertDialog ad = new AlertDialog.Builder(this).create();
6 ad.setMessage("Du hast gewonnen!!!");
7 ad.show();
8
9 i=0;
10 }
11 bar.setProgress(i);
12 }
13 }
Was auch noch hilfreich sein könnte ist der Inhalt meiner fragment_main.xml:
1<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
2 xmlns:tools="http://schemas.android.com/tools"
3 android:layout_width="match_parent"
4 android:layout_height="match_parent"
5 android:paddingLeft="@dimen/activity_horizontal_margin"
6 android:paddingRight="@dimen/activity_horizontal_margin"
7 android:paddingTop="@dimen/activity_vertical_margin"
8 android:paddingBottom="@dimen/activity_vertical_margin"
9 tools:context="de.lucas.clickgame.firstapp.MainActivity$PlaceholderFragment">
10
11 <Button
12 android:layout_width="wrap_content"
13 android:layout_height="wrap_content"
14 android:text="@string/button"
15 android:id="@+id/button"
16 android:layout_alignParentTop="true"
17 android:layout_alignParentLeft="true"
18 android:layout_alignParentStart="true"
19 android:layout_alignParentRight="true"
20 android:layout_alignParentEnd="true" />
21
22 <ProgressBar
23 style="?android:attr/progressBarStyleHorizontal"
24 android:layout_width="wrap_content"
25 android:layout_height="wrap_content"
26 android:id="@+id/progressBar"
27 android:layout_below="@+id/button"
28 android:layout_alignParentLeft="true"
29 android:layout_alignParentStart="true"
30 android:layout_alignParentRight="true"
31 android:layout_alignParentEnd="true"
32 android:minHeight="40dp" />
33</RelativeLayout>
2 xmlns:tools="http://schemas.android.com/tools"
3 android:layout_width="match_parent"
4 android:layout_height="match_parent"
5 android:paddingLeft="@dimen/activity_horizontal_margin"
6 android:paddingRight="@dimen/activity_horizontal_margin"
7 android:paddingTop="@dimen/activity_vertical_margin"
8 android:paddingBottom="@dimen/activity_vertical_margin"
9 tools:context="de.lucas.clickgame.firstapp.MainActivity$PlaceholderFragment">
10
11 <Button
12 android:layout_width="wrap_content"
13 android:layout_height="wrap_content"
14 android:text="@string/button"
15 android:id="@+id/button"
16 android:layout_alignParentTop="true"
17 android:layout_alignParentLeft="true"
18 android:layout_alignParentStart="true"
19 android:layout_alignParentRight="true"
20 android:layout_alignParentEnd="true" />
21
22 <ProgressBar
23 style="?android:attr/progressBarStyleHorizontal"
24 android:layout_width="wrap_content"
25 android:layout_height="wrap_content"
26 android:id="@+id/progressBar"
27 android:layout_below="@+id/button"
28 android:layout_alignParentLeft="true"
29 android:layout_alignParentStart="true"
30 android:layout_alignParentRight="true"
31 android:layout_alignParentEnd="true"
32 android:minHeight="40dp" />
33</RelativeLayout>
Ich gehe davon aus, dass der Fehler von einem Fortgeschrittenen schnell zu finden sein wird un nur für mich als absoluter Anfänger nicht findbar ist.
Ich würde mich über Hilfe freuen.
Falls die vielen Informationen nicht genug sein sollten, kann ich gerne nachliefern.
MfG
Lucas
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.