S
SDcard
Gast
Hallo alle zusammen, ich programmiere seit einiger Zeit an einem Spiel für Android, aber immer wenn ich versuche meine App im Emulator zu starten, muss die Anwendung unerwartet beendet werden.
Wenn ich noch irgendwelche Codeschnipsel posten soll, schreibt es einfach.
Das Logcat:
Der betreffende Code (Tools)
Doktor:[JAVA=24]tools = new Tools();[/code]
MainActivity:[JAVA=34]spieler = new Doktor();[/code]
Manifest:[XML]<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="x.x.mutanten"
android:versionCode="2"
android:versionName="Beta 0.21" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="9" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="x.x.mutanten.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="x.x.mutanten.Tools"></activity>
</application>
</manifest>[/XML]
Wenn ich noch irgendwelche Codeschnipsel posten soll, schreibt es einfach.
Das Logcat:
Code:
02-06 14:55:34.792: E/AndroidRuntime(403): FATAL EXCEPTION: main
02-06 14:55:34.792: E/AndroidRuntime(403): java.lang.RuntimeException: Unable to start activity ComponentInfo{x.x.mutanten/x.x.mutanten.MainActivity}: java.lang.NullPointerException
02-06 14:55:34.792: E/AndroidRuntime(403): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
02-06 14:55:34.792: E/AndroidRuntime(403): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
02-06 14:55:34.792: E/AndroidRuntime(403): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
02-06 14:55:34.792: E/AndroidRuntime(403): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
02-06 14:55:34.792: E/AndroidRuntime(403): at android.os.Handler.dispatchMessage(Handler.java:99)
02-06 14:55:34.792: E/AndroidRuntime(403): at android.os.Looper.loop(Looper.java:123)
02-06 14:55:34.792: E/AndroidRuntime(403): at android.app.ActivityThread.main(ActivityThread.java:3683)
02-06 14:55:34.792: E/AndroidRuntime(403): at java.lang.reflect.Method.invokeNative(Native Method)
02-06 14:55:34.792: E/AndroidRuntime(403): at java.lang.reflect.Method.invoke(Method.java:507)
02-06 14:55:34.792: E/AndroidRuntime(403): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
02-06 14:55:34.792: E/AndroidRuntime(403): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
02-06 14:55:34.792: E/AndroidRuntime(403): at dalvik.system.NativeStart.main(Native Method)
02-06 14:55:34.792: E/AndroidRuntime(403): Caused by: java.lang.NullPointerException
02-06 14:55:34.792: E/AndroidRuntime(403): at android.content.ContextWrapper.getResources(ContextWrapper.java:80)
02-06 14:55:34.792: E/AndroidRuntime(403): at x.x.mutanten.Tools.initialize(Tools.java:33)
02-06 14:55:34.792: E/AndroidRuntime(403): at x.x.mutanten.Tools.<init>(Tools.java:24)
02-06 14:55:34.792: E/AndroidRuntime(403): at x.x.mutanten.Doktor.<init>(Doktor.java:22)
02-06 14:55:34.792: E/AndroidRuntime(403): at x.x.mutanten.MainActivity.onCreate(MainActivity.java:34)
02-06 14:55:34.792: E/AndroidRuntime(403): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
02-06 14:55:34.792: E/AndroidRuntime(403): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
02-06 14:55:34.792: E/AndroidRuntime(403): ... 11 more
Der betreffende Code (Tools)
Java:
public class Tools extends Activity{
//Instanzvariablen
Resources res;
SharedPreferences preferences;
String name;
int geld;
String[] dna;
String[] zellnamen;
String[] saves;
//Konstruktor
public Tools(){
initialize(); //FEHLER!
}
//Methoden
void initialize(){
dna = new String[3];
zellnamen = new String[3];
saves = new String[9];
//saves.txt laden
InputStream inputStream = getResources().openRawResource(R.raw.saves); //Fehler!!!
ByteArrayOutputStream baos = new ByteArrayOutputStream();
int i;
try { //Datei laden
i = inputStream.read();
while (i != -1)
{
baos.write(i);
i = inputStream.read();
}
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
String save = baos.toString(); //Dateiinhalt teilen
saves = save.split("\n");
saves[0] = saves[0].substring(0,-1);
saves[1] = saves[1].substring(0,-1);
saves[2] = saves[2].substring(0,-1);
saves[3] = saves[3].substring(0,-1);
saves[4] = saves[4].substring(0,-1);
saves[5] = saves[5].substring(0,-1);
saves[6] = saves[6].substring(0,-1);
saves[7] = saves[7].substring(0,-1);
saves[8] = saves[8].substring(0,-1);
name = saves[0];
geld = Integer.parseInt(saves[1]);
dna[0] = saves[2]; //Aktell im LAbor
dna[1] = saves[3]; //in der Datebank
dna[2] = saves[4]; //in der Datebank
dna[3] = saves[5]; //in der Datebank
zellnamen[0] = saves[6];
zellnamen[1] = saves[7];
zellnamen[2] = saves[8];
zellnamen[3] = saves[9];
}
Doktor:[JAVA=24]tools = new Tools();[/code]
MainActivity:[JAVA=34]spieler = new Doktor();[/code]
Manifest:[XML]<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="x.x.mutanten"
android:versionCode="2"
android:versionName="Beta 0.21" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="9" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="x.x.mutanten.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="x.x.mutanten.Tools"></activity>
</application>
</manifest>[/XML]