Es Compiliert nicht:(

  • 7 Antworten
  • Letztes Antwortdatum
L

likedue

Ambitioniertes Mitglied
1
Hallo Leute,

ich versuche mich etwas mit Android und habe mir im Zuge dessen ein eigentlich simples Projekt vorgenommen.
Ich habe alles was ich bisher weiß aus diversen Tutorials und Foren geholt.
Nun habe ich das Projekt mehr oder weniger fertig, kann es aber nicht compilieren.
Zum Projekt selbst:
Ich möchte für einen Bauhof, auf den man Müll abliefern kann eine App erstellen.
Folgendes soll die App bewirken.:
Ein LKW kommt auf den Hof und das Kennzeichen wird eingegeben,
nach der Wiegung kommt dann der Eintrag mit dem Material, welches er geladen hat.
Das ganze geht dann in eine sqlitedatenbank und zusätzlich in eine Logbuch-Datei.

Das ganze habe ich in 3xml realisiert:
kennzeichen
aktuelle wiegung
logbuch

Alle xml werden über eine Klasse gesteuert.
für die Datenbank habe ich 3 separate Klassen angelegt.

Ich habe es nach 2Wochen jetzt soweit, dass mir keine Fehler mehr angezeigt werden.
Leider kann ich die App trotzdem nicht öffnen.

In der Hauptklasse habe ich diesen Source:
HTML:
package app.fin;

import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import app.fin.fin.R;



public class AktuellesFahrzeug extends Activity 
{
			//GUI-Relevante Vorlagen
	private Button 	 los;
	private EditText kenn;
			String 	 kennzeichen;
			
			EditText gesamtgewicht;
			String   gesamtgewichte;
			EditText leergewicht;
			String 	 leergewichte;
			TextView test;
			TextView endgewicht;
			String	 endgewichte;
			String 	 hilf;
			int 	 fin;
			Spinner  materials;
			Button	 parken;
			Button	 eintrag;
			Button	 log;

			//Vorlagen Wiege Methoden
			double gesamt;
			double leer;
			double hilf2;
			String hilf3;
			String datum;
			
			//Vorlagen Dropdown
			TextView  zeitpunkt;
			TextView  material;
			String	  material2;
			String 	  split      = "Split"      , 		
			          schotter   = "Schotter"   ,
			          schutt  	 = "Schutt"     ,
			          mutterboden= "Mutterboden",
					  /*...
						...
						...
						...*/
			          sonstigesh			   ; 
			EditText  sonstiges				   ;

			//App-Funktionen
			boolean mainisopen = true;
			
					
	@Override
	public void onCreate(Bundle savedInstanceState)
	{

		super.onCreate(savedInstanceState);
        setContentView(R.layout.aktuellesfzg); 	
        los  = 	(Button)   findViewById(R.id.starten);    
        kenn = 	(EditText) findViewById(R.id.kennzeichen);
        
		datasource = new DatenBankDataSource(this);
		
		materials  = (Spinner)findViewById(R.id.materialart);
		test	   = (TextView)findViewById(R.id.kennzeichen); 
		ArrayAdapter<CharSequence> adapter= ArrayAdapter.createFromResource(this, R.array.materialien, android.R.layout.simple_spinner_item);
		adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
		materials.setAdapter(adapter);	
		
        los.setOnClickListener(new View.OnClickListener()
        
        {
        	// Kennzeichenmethode
        	public void onClick(View view) 
        	{
        	
        	if (kenn.getText().toString().length()==0)
        	{
        		showDialog(1);
        		return;
        	}
        	kennzeichen=(kenn.getText().toString());
        	
        	setContentView(R.layout.metall);
        	mainisopen = false;        	
        	}	
        });
	}	
	private DatenBankDataSource datasource;
	List<String>FahrzeugList = new ArrayList<String>();
	
	//Fehlerdialoge
	@Override
	protected   Dialog onCreateDialog(int msg)
	{
		switch(msg)
		{
		case 1:
			AlertDialog.Builder builder = new AlertDialog.Builder(getApplicationContext());
			builder.setMessage("Bitte ein Kennzeichen eintragen.");
			builder.setCancelable(true);
			builder.setPositiveButton("Kennzeichen eingeben", new DialogInterface.OnClickListener()
			{
				public void onClick(DialogInterface dialog, int which)
				{
					Toast.makeText(getApplicationContext(), "Eingabe wird fortgesetzt", Toast.LENGTH_LONG).show();
				}
			});
			builder.setNegativeButton("Ohne Kennzeichen fortfahren", new DialogInterface.OnClickListener()
			{
				public void onClick(DialogInterface dialog, int which)
				{
					kennzeichen = "Ohne Kennzeichen";
					setContentView(R.layout.metall);
				}			
			});
			AlertDialog dialog = builder.create();
			dialog.show();		
		case 2:
			AlertDialog.Builder builder2 = new AlertDialog.Builder(getApplicationContext());
			builder2.setMessage("Sind Sie sicher dass Sie den Vorgang abbrechen möchten?");
			builder2.setCancelable(true);
			builder2.setPositiveButton("Wiegen fortfahren", new DialogInterface.OnClickListener()
			{
				public void onClick(DialogInterface dialog, int which)
				{
					Toast.makeText(getApplicationContext(), "Eingabe wird fortgesetzt", Toast.LENGTH_LONG).show();
				}
			});
			builder2.setNegativeButton("Abbrechen", new DialogInterface.OnClickListener()
			{
				public void onClick(DialogInterface dialog, int which)
				{
			    	try
			    	{
			    		datasource.open();
	    	    		datasource.createEntry(kennzeichen, material, gesamtgewichte, leergewichte, endgewichte);
			    		datasource.close();
				    	Toast.makeText(getApplicationContext(), "Aktueller Eintrag im Logbuch gespeichert", Toast.LENGTH_LONG).show();
				    	setContentView(R.layout.aktuellesfzg);
			    	}
			    	catch(Exception ex)
			    	{
			    	}
	
				}
			});
			AlertDialog dialog2 = builder2.create();
			dialog2.show();				
		}
		return super.onCreateDialog(msg);
	}
	//Logbuchmethode
	public void Logbuch 		(View view)
	{
		setContentView(R.layout.logbuch);
    	mainisopen = false;
		ArrayAdapter<String> adapterFahrzeug = new ArrayAdapter<String>(AktuellesFahrzeug.this, android.R.layout.simple_list_item_1, FahrzeugList);
		ListView lFahrzeug = (ListView) findViewById(R.id.listView1);
		lFahrzeug.setAdapter(adapterFahrzeug);


	}
	//Parkplatzmethode
	public void Parkplatz 		(View view)
	{
		setContentView(R.layout.parkplatz);
    	mainisopen = false;
	}
	//Methode zum zwischenspeichern
	public void SpeichernKlick 	(View view)
	{
    	setContentView(R.layout.metall);
    	mainisopen 	   = false;
		gesamtgewicht  = (EditText)	findViewById(R.id.gesgewicht);
		leergewicht    = (EditText)	findViewById(R.id.leergewicht);
		endgewicht     = (TextView)	findViewById(R.id.endgewicht);
		parken	       = (Button)   findViewById(R.id.parken);
		eintrag	       = (Button)   findViewById(R.id.speichern);
		log		       = (Button)  	findViewById(R.id.log); 

	  /*if (gesamtgewicht.getText().toString().length()==0)
    	{
    		return;
    	}
    	if (leergewicht.getText().toString().length()==0)
    	{
    		return;
    	}
	 */
    	gesamt = Double.parseDouble(gesamtgewicht.getText().toString());
    	leer   = Double.parseDouble(leergewicht.getText().toString());

    	if (gesamt - leer <=0)
    	{
    		return;
    	}
    if (gesamt - leer >0)
    	{
    		hilf2 = gesamt - leer;
    		hilf3 = (Double.valueOf(hilf).toString());
    	}
    	endgewicht.setText(String.valueOf(hilf3));
    	endgewichte = hilf3;
    	try
    	{
    		datasource.open();
	   		datasource.createEntry(kennzeichen, material, gesamtgewichte, leergewichte, endgewichte);
    		datasource.close();
    	}
    	catch(Exception ex)
    	{
    		Toast.makeText(this,ex.toString(),Toast.LENGTH_LONG).show();
    	}
    	//FahrzeugList.add(new Date().getTime() +"Datum: "+ kenn.getText().toString() +"KFZ: "+ metwahl.getText().toString() + "| " + gewicht1.getText().toString() +"Ges: "+ gewicht2.getText().toString() + "Leer: " + gewicht3.getText().toString() + "End: "  );
	}
	//Methode zum Beenden der Wiegung
	public void EndeKlick 	(View view)
	{
    	setContentView(R.layout.aktuellesfzg);
    	mainisopen = false;	
		
		gesamtgewicht  = (EditText)	findViewById(R.id.gesgewicht);
		leergewicht    = (EditText)	findViewById(R.id.leergewicht);
		endgewicht     = (TextView)	findViewById(R.id.endgewicht);
		parken	       = (Button)   findViewById(R.id.parken);    
		eintrag	       = (Button)   findViewById(R.id.speichern);    
		log		       = (Button)  	findViewById(R.id.log); 
    

		  /*if (gesamtgewicht.getText().toString().length()==0)
	    	{
	    		return;
	    	}
	    	if (leergewicht.getText().toString().length()==0)
	    	{
	    		return;
	    	}
		 */
    	gesamt = Double.parseDouble(gesamtgewicht.getText().toString());
    	leer   = Double.parseDouble(leergewicht.getText().toString());	
    	if (gesamt - leer <=0)
    	{
    		return;
    	}
    	if (gesamt - leer >0)
    	{
    		hilf2 = gesamt - leer;
    		hilf3 = (Double.valueOf(hilf).toString());   	  	
    		endgewicht.setText(String.valueOf(hilf3));
    		endgewichte = hilf3;
    	}
    	
    	try
    	{
    		datasource.open();
	   		datasource.createEntry(kennzeichen, material, gesamtgewichte, leergewichte, endgewichte);
    		datasource.close();
    	}
    	catch(Exception ex)
    	{
    		Toast.makeText(this,ex.toString(),Toast.LENGTH_LONG).show();
    	}
    }
	//Methode zum Halten des Fahrzeugs
	public void ParkenKlick	(View view)
	{
    	setContentView(R.layout.aktuellesfzg);
    	mainisopen = false;	
		
    	gesamtgewicht  = (EditText)	findViewById(R.id.gesgewicht);
    	leergewicht    = (EditText)	findViewById(R.id.leergewicht);
    	endgewicht     = (TextView)	findViewById(R.id.endgewicht);
		parken	       = (Button)   findViewById(R.id.parken);    
		eintrag	       = (Button)   findViewById(R.id.speichern);    
		log		       = (Button)  	findViewById(R.id.log); 
    

		  /*if (gesamtgewicht.getText().toString().length()==0)
	    	{
	    		return;
	    	}
	    	if (leergewicht.getText().toString().length()==0)
	    	{
	    		return;
	    	}
		 */
		
    	gesamt = Double.parseDouble(gesamtgewicht.getText().toString());
    	leer   = Double.parseDouble(leergewicht.getText().toString());
    
    	if (gesamt - leer <=0)
    	{
    		return;
    	} 	
    if (gesamt - leer >0)
    	{
    		hilf2 = gesamt - leer;
    		hilf3 = (Double.valueOf(hilf).toString());   	  	
    		endgewichte = hilf3;
    	}
    
		try
		{
			datasource.open();
   			datasource.createEntry(kennzeichen, material, gesamtgewichte, leergewichte, endgewichte);
   			datasource.close();
		}
    	catch(Exception ex)
    	{
    		Toast.makeText(this,ex.toString(),Toast.LENGTH_LONG).show();
    	}	
 
	}
	//Dropdown für die Wiegung -- Methodengebilde fehlt nur noch
	public void onItemSelected(AdapterView<?> parent, View arg1, int pos,long id) 
	{

			switch(pos)
			{
				case 1:					
					material = (TextView) findViewById(R.id.materialwahl);					
					material.setText(String.valueOf(split));
					materials = split;
				break;	
				case 2:
					material = (TextView) findViewById(R.id.materialwahl);					
					material.setText(String.valueOf(schotter));
					materials = schotter;
				break;	
				case 3:
					material = (TextView) findViewById(R.id.materialwahl);					
					material.setText(String.valueOf(schutt));
					materials = schutt;
				break;	
				case 4:
					material = (TextView) findViewById(R.id.materialwahl);					
					material.setText(String.valueOf(mutterboden));
					materials = mutterboden;
				break;				
				case 5:
					material =(EditText) findViewById(R.id.sonstiges);
				    sonstigesh = sonstiges.getText().toString();
				    material.setText(String.valueOf(sonstigesh));
				break;
			}
	}
	public void onNothingSelected(AdapterView<?> arg0) 
	{
			//keine Fkt.
	}
	public String gt() 
	{
			 Timestamp timestamp = new Timestamp(new Date().getTime());
			 return timestamp.toString();
	}
	//Fehlerbehandlung
	@Override
	public boolean onKeyDown (int keyCode, KeyEvent event)
	{
		if(keyCode==KeyEvent.KEYCODE_BACK && mainisopen == false)
		{
    		showDialog(2);
			mainisopen = true;
			
			setContentView(R.layout.aktuellesfzg);
	    	return true;
		}
		return super.onKeyDown(keyCode, event);
	}

}

Die DatenBankDataSource
HTML:
package app.fin;


import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;



public class DatenBankDataSource 
{
	
	private SQLiteDatabase database;
	private MySQLiteHelper dbHelper;
	private String[] allColumns = {"KENNZ", "MATERIAL", "GESGEW", "LEERGEW", "ENDGEW"};
	
	public DatenBankDataSource(Context context)
	{
		dbHelper = new MySQLiteHelper(context);
	}
	public void open () throws SQLException
	{
		database = dbHelper.getWritableDatabase();	
	}
	public void close() 
	{
		dbHelper.close();
	}
	public Entry createEntry (String kennzeichen, String metalle, String gesamt, String leer, String endgewichte)
	{
		ContentValues values = new ContentValues();
		values.put("KENNZ"	 , kennzeichen		 );
		values.put("MATERIAL", material		 );
		values.put("GESGEW"	 , gesamt			 );
		values.put("LEERGEW" , leer				 );
		values.put("ENDGEW"	 , endgewichte 		 );
		
		long insertId = database.insert("LOGBUCH", null, values);
		
		Cursor cursor = database.query("LOGBUCH", allColumns, "ID = " + insertId, null, null, null, null, null);
		cursor.moveToFirst();
		
		return cursorToEntry(cursor);
	}
	protected List<Entry> getAllEntries()
	{
		List<Entry> EntryList = new ArrayList<Entry>();
		EntryList = new ArrayList<Entry>();
		
		Cursor cursor = database.query("LOGBUCH",allColumns, null, null, null, null, null, null);
		cursor.moveToFirst();
		
		if (cursor.getCount()==0) return EntryList;
		
		while (cursor.isAfterLast() == false)
		{
			Entry eintrag = cursorToEntry(cursor);
			EntryList.add(eintrag);
			cursor.moveToNext();
		}
		cursor.close();
		return EntryList;
	}
	private  Entry cursorToEntry(Cursor cursor)
	{
		Entry entry = 			new Entry		   ();
		entry.setkennzeichen	(cursor.getString(0));
		entry.setmaterial		(cursor.getString(1));
		entry.setGesamtgewicht	(cursor.getDouble(2));
		entry.setLeergewicht	(cursor.getDouble(3));
		entry.setEndgewicht		(cursor.getDouble(4));
		
		return entry;
	}


}


Entry Klasse
HTML:
package app.fin;

public class Entry {

	//private long   id;
	//private String datum;
	private String kennzeichen;
	private String material;
	private double gesamtgewicht;
	private double leergewicht;
	private double endgewicht;
	


	
	public String getkennzeichen()
	{
		return kennzeichen;
	}
	public void setkennzeichen(String kennzeichen)
	{
		this.kennzeichen = kennzeichen;
	}
	public String getmaterial()
	{
		return material;
	}
	public void setmaterial(String material)
	{
		this.material = material;
	}	
	public double getGesamtgewicht()
	{
		return gesamtgewicht;
	}
	public void setGesamtgewicht(double gesamtgewicht)
	{
		this.gesamtgewicht = gesamtgewicht;
	}
	public double getLeergewicht()
	{
		return leergewicht;
	}
	public void setLeergewicht(double leergewicht)
	{
		this.leergewicht = leergewicht;
	}
	public double getEndgewicht()
	{
		return endgewicht;
	}
	public void setEndgewicht(double endgewicht)
	{
		this.endgewicht = endgewicht;
	}	
	@Override
	public String toString()
	{
		return String.format(" %s %s %s %d %d %d" , kennzeichen, material, gesamtgewicht, leergewicht, endgewicht);
		
	}
	
	
}


MySqLiteHelper
HTML:
package app.fin;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

public class MySQLiteHelper extends SQLiteOpenHelper
{
/*	public  static final String KEY_ZEILE   = "Zeilennummer";
	public  static final String KEY_KENNZ 	= "Kennzeichen";
	public  static final String KEY_DATUM 	= "Datum/Uhrzeit";
	public  static final String KEY_MATERIAL	= "Material";
	public  static final String KEY_GESGEW	= "Gesamtgewicht";
	public  static final String KEY_LEERGEW	= "Leergewicht";	
	public  static final String KEY_ENDGEW	= "Endgewicht";
	private static final String DATENBANK_TABELLE = "Wiegezettel";
	private static final String TAG			= "DatenBank";*/
	private static final String DATENBANK_NAME	  = "Chronik.db";
	private static final int	DATENBANK_VERSION = 2;
	private static final String TABLE_CREATE_CHRONIK = ""
	+ "create table CHRONIK("
	+ "ID Integer primary key autoincrement, "
	+ "DATUM String,"
	+ "KENNZ String,"
	+ "MATERIAL String,"
	+ "GESGEW double,"
	+ "LEERGEW double,"
	+ "ENDGEW double";
	public MySQLiteHelper(Context ctx)
	{
	super(ctx, DATENBANK_NAME, null, DATENBANK_VERSION);
	}
	@Override
	public void onCreate(SQLiteDatabase database)
	{
		database.execSQL(TABLE_CREATE_CHRONIK);
	}
	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
	{
		Log.w(MySQLiteHelper.class.getName(),
			  "Upgrading database from version " + oldVersion + " to " + newVersion + ", which will destroy all old data");
		db.execSQL("DROP TABLE IF EXISTS SCANITEM");
		onCreate(db);
		
	}
}

Das Manifest:

HTML:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="app.fin.fin"
    android:versionCode="1"
    android:versionName="1.0" >


<uses-sdk         
        android:minSdkVersion="8"
        android:targetSdkVersion="15" />


    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="app.fin.AktuellesFahrzeug"
            android:label="@string/title_activity_main" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

Hier sind die Fehler, die die Log mir auswirft.
Code:
11-11 13:49:10.742: D/dalvikvm(321): GC_EXTERNAL_ALLOC freed 763 objects / 55512 bytes in 64ms
11-11 13:49:10.982: D/dalvikvm(321): GC_EXTERNAL_ALLOC freed 258 objects / 12728 bytes in 58ms
11-11 13:49:11.192: D/AndroidRuntime(321): Shutting down VM
11-11 13:49:11.192: W/dalvikvm(321): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
11-11 13:49:11.228: E/AndroidRuntime(321): FATAL EXCEPTION: main
11-11 13:49:11.228: E/AndroidRuntime(321): java.lang.RuntimeException: Unable to start activity ComponentInfo{app.fin.fin/app.fin.AktuellesFahrzeug}: java.lang.NullPointerException
11-11 13:49:11.228: E/AndroidRuntime(321): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
11-11 13:49:11.228: E/AndroidRuntime(321): 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
11-11 13:49:11.228: E/AndroidRuntime(321): 	at android.app.ActivityThread.access$2300(ActivityThread.java:125)
11-11 13:49:11.228: E/AndroidRuntime(321): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
11-11 13:49:11.228: E/AndroidRuntime(321): 	at android.os.Handler.dispatchMessage(Handler.java:99)
11-11 13:49:11.228: E/AndroidRuntime(321): 	at android.os.Looper.loop(Looper.java:123)
11-11 13:49:11.228: E/AndroidRuntime(321): 	at android.app.ActivityThread.main(ActivityThread.java:4627)
11-11 13:49:11.228: E/AndroidRuntime(321): 	at java.lang.reflect.Method.invokeNative(Native Method)
11-11 13:49:11.228: E/AndroidRuntime(321): 	at java.lang.reflect.Method.invoke(Method.java:521)
11-11 13:49:11.228: E/AndroidRuntime(321): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
11-11 13:49:11.228: E/AndroidRuntime(321): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
11-11 13:49:11.228: E/AndroidRuntime(321): 	at dalvik.system.NativeStart.main(Native Method)
11-11 13:49:11.228: E/AndroidRuntime(321): Caused by: java.lang.NullPointerException
11-11 13:49:11.228: E/AndroidRuntime(321): 	at app.fin.AktuellesFahrzeug.onCreate(AktuellesFahrzeug.java:91)
11-11 13:49:11.228: E/AndroidRuntime(321): 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
11-11 13:49:11.228: E/AndroidRuntime(321): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
11-11 13:49:11.228: E/AndroidRuntime(321): 	... 11 more
11-11 13:49:17.952: D/dalvikvm(341): GC_EXTERNAL_ALLOC freed 785 objects / 56368 bytes in 157ms
11-11 13:49:18.172: D/dalvikvm(341): GC_EXTERNAL_ALLOC freed 258 objects / 12720 bytes in 44ms
11-11 13:49:18.362: D/AndroidRuntime(341): Shutting down VM
11-11 13:49:18.362: W/dalvikvm(341): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
11-11 13:49:18.382: E/AndroidRuntime(341): FATAL EXCEPTION: main
11-11 13:49:18.382: E/AndroidRuntime(341): java.lang.RuntimeException: Unable to start activity ComponentInfo{app.fin.fin/app.fin.AktuellesFahrzeug}: java.lang.NullPointerException
11-11 13:49:18.382: E/AndroidRuntime(341): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
11-11 13:49:18.382: E/AndroidRuntime(341): 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
11-11 13:49:18.382: E/AndroidRuntime(341): 	at android.app.ActivityThread.access$2300(ActivityThread.java:125)
11-11 13:49:18.382: E/AndroidRuntime(341): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
11-11 13:49:18.382: E/AndroidRuntime(341): 	at android.os.Handler.dispatchMessage(Handler.java:99)
11-11 13:49:18.382: E/AndroidRuntime(341): 	at android.os.Looper.loop(Looper.java:123)
11-11 13:49:18.382: E/AndroidRuntime(341): 	at android.app.ActivityThread.main(ActivityThread.java:4627)
11-11 13:49:18.382: E/AndroidRuntime(341): 	at java.lang.reflect.Method.invokeNative(Native Method)
11-11 13:49:18.382: E/AndroidRuntime(341): 	at java.lang.reflect.Method.invoke(Method.java:521)
11-11 13:49:18.382: E/AndroidRuntime(341): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
11-11 13:49:18.382: E/AndroidRuntime(341): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
11-11 13:49:18.382: E/AndroidRuntime(341): 	at dalvik.system.NativeStart.main(Native Method)
11-11 13:49:18.382: E/AndroidRuntime(341): Caused by: java.lang.NullPointerException
11-11 13:49:18.382: E/AndroidRuntime(341): 	at app.fin.AktuellesFahrzeug.onCreate(AktuellesFahrzeug.java:91)
11-11 13:49:18.382: E/AndroidRuntime(341): 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
11-11 13:49:18.382: E/AndroidRuntime(341): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
11-11 13:49:18.382: E/AndroidRuntime(341): 	... 11 more


Ich hoffe, ihr könnt mir weiterhelfen.
 
Aus meiner Sicht sind das die wichtigen Infozeilen:

11-11 13:49:18.382: E/AndroidRuntime(341): Caused by: java.lang.NullPointerException
11-11 13:49:18.382: E/AndroidRuntime(341): at app.fin.AktuellesFahrzeug.onCreate(AktuellesFahrzeug.java:91)

Schau doch mal was (Variable,Argument) in Zeile 91 von AktuellesFahrzeug.java NULL sein könnte, obwohl Du es nicht erwarten würdest. Ggf. vorher alle Referenzen auf Objekte prüfen, und eine Ausgabe im Log machen, wenn diese NULL sind.
 
Hey,

in deiner Klasse AktuellesFahrzeug bekommst du eine NullPointerException und zwar in Line 91 (d.h dass wenn der debugger and der Zeile 91 ist, ist die Variable null und somit noch nicht initialisiert.

Code:
at app.fin.AktuellesFahrzeug.onCreate(AktuellesFahrze  ug.java:91)

Zeig mal wo Line 91 steht und wo du die Variable (die in der Zeile 91 zu finden ist) noch benutzt.

MfG
 
Hey,
super dass Ihr so schnell antwortet!

Also ich hab in der Zeile 91 den setadapter für das dropdown in der onCreate Methode.

letzte Zeile-->
HTML:
	public void onCreate(Bundle savedInstanceState)
	{

		super.onCreate(savedInstanceState);
        setContentView(R.layout.aktuellesfzg); 	
        los  = 	(Button)   findViewById(R.id.starten);    
        kenn = 	(EditText) findViewById(R.id.kennzeichen);
        
		datasource = new DatenBankDataSource(this);
		
		materials  = (Spinner)findViewById(R.id.materialart);
		test	   = (TextView)findViewById(R.id.kennzeichen); 
		ArrayAdapter<CharSequence> adapter= ArrayAdapter.createFromResource(this, R.array.materialien, android.R.layout.simple_spinner_item);
		adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
		materials.setAdapter(adapter);


kann es sein, dass ich seitAdapter(adapter) noch irgendwie setzen muss?
 
Hi,

du kannst in Eclipse (falls du mit Eclipse arbeitest) einen breakpoint setzten und zwar in Zeile 91. Dann kannst du dein Programm starten. Wenn der Compiler nun in der Zeile 91 sich befindet stoppt er und hebt diese Zeile dann hervor. Wenn du nun mit der Maus über die Variable adapter oder materials gehst kannst du sehen welches von beiden null ist und diese beheben oder hier im Forum sagen welches es ist weil ich kann es nicht erkennen. Versuch es mal.

MfG
 
okay, wie genau mache ich dass dann?
Ich bin noch neu im Eclipse.
 
Rechtsklick links neben dem Source Fenster in der vertikalen Leiste, dann Toggle Breakpoint.

Oder alternativ, vor Zeile 91 folgende zwei Zeilen einfügen:

Log.v("irgendeinTag", "materials: " + materials.toString());
Log.v("irgendeinTag", "adapter: " + adapter.toString());

Eine von den beiden Zeilen wird eine NPE werfen, dann weisst du auch, welches der zwei Objekte null ist. In beiden Fällen wird der Fehler wohl irgendwo in den Resourcen stecken.
 
Das hat bestens funktioniert.
Vielen Dank!
100% sauber läuft es nicht, aber ich weiß jetzt, wie ich die Fehler beheben kann.
Ich bin extrem mit den Variablen, die ich in den einzelnen layouts habe durcheinander gekommen.
Klasse!
 
Zuletzt bearbeitet:
Zurück
Oben Unten