Eigene App stürzt ab

  • 4 Antworten
  • Letztes Antwortdatum
T

Techniker2013

Neues Mitglied
0
Nach einigen Ratschlägen der Mitglieder, habe ich mich in Java, so wie in Android eingelesen und meine App funktioniert jetzt halbwegs.

Zur Funktion der App:
Sobald der Accelerometer 2D, in der X-Achse größer Null oder kleiner Null wird sendet es mir einen Buchstaben als String an einen Mircrocontroller, in der Y-Achse genau das gleiche.

Ich habe zusätzlich einen Button mit eingebunden, zu Testzwecken. Wenn ich diesen betätige soll er mir auch einen String schicken, und da liegt der Knackpunkt sobald ich diesen Button drücke hängt sich die App auf und gar keine Verbindung entsteht.

Das grün markierte ist genau die Stelle bei der LogCat und Console mir sagen, damit diese dort hängen bleiben und ich hab nach langen herumprobieren auch keine Lösung gefunden.

Ich hoffe mir kann da jemand helfen. Danke schon einmal im Voraus.

Hier der Code:

Code:
test=(Button)findViewById(R.id.button1);
		test.setOnClickListener(new OnClickListener(){

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				String sendLetter = "b";
				conBTdevice.write(sendLetter);
			}
			
		});

****************************************
 public void write(String str) {
			  try {
			 [COLOR="Green"] mOutputStream.write(stringToBytes(str));[/COLOR]
			  } catch (IOException e) { 
			  Log.e("Writing to Stream", "Error when writing to btOutputStream");
			  }
			  }

			  public byte[] stringToBytes(String str) {
			  char[] buffer = str.toCharArray();
			  byte[] b = new byte[buffer.length << 1];
			  for(int i = 0; i < buffer.length; i++) {
			  int bpos = i << 1;
			  b[bpos] = (byte) ((buffer[i]&0xFF00)>>8);
			  b[bpos + 1] = (byte) (buffer[i]&0x00FF);
			  }
			  return b;
			  }
 
Bitte Logcatmeldung auch hier posten ;)

Ins Blaue geraten: Nullpointerexception, weil du wenn du den Button tätigst mOutputStream nicht initalisierst. Wenn du das per Accelerometer macht, wird an irgendeiner Stelle der Accelerometer initalisiert?
 
kleinerkathe schrieb:
Bitte Logcatmeldung auch hier posten ;)

Ins Blaue geraten: Nullpointerexception, weil du wenn du den Button tätigst mOutputStream nicht initalisierst. Wenn du das per Accelerometer macht, wird an irgendeiner Stelle der Accelerometer initalisiert?

Code:
10-30 18:44:24.344: W/ActivityThread(4197): Application de.poseidon_v2 is waiting for the debugger on port 8100...
10-30 18:44:24.424: I/System.out(4197): Sending WAIT chunk
10-30 18:44:24.484: I/dalvikvm(4197): Debugger is active
10-30 18:44:24.648: I/System.out(4197): Debugger has connected
10-30 18:44:24.648: I/System.out(4197): waiting for debugger to settle...
10-30 18:44:24.944: I/System.out(4197): waiting for debugger to settle...
10-30 18:44:25.145: I/System.out(4197): waiting for debugger to settle...
10-30 18:44:25.344: I/System.out(4197): waiting for debugger to settle...
10-30 18:44:25.570: I/System.out(4197): waiting for debugger to settle...
10-30 18:44:25.764: I/System.out(4197): waiting for debugger to settle...
10-30 18:44:25.974: I/System.out(4197): waiting for debugger to settle...
10-30 18:44:26.254: I/System.out(4197): waiting for debugger to settle...
10-30 18:44:26.477: I/System.out(4197): waiting for debugger to settle...
10-30 18:44:26.686: I/System.out(4197): debugger has settled (1360)
[COLOR="Red"]10-30 18:44:26.944: E/BluetoothAdapter(4197): Bluetooth binder is null[/COLOR]

public void onSensorChanged(SensorEvent event) {
		// TODO Auto-generated method stub
		test=(Button)findViewById(R.id.button1);
		test.setOnClickListener(new OnClickListener(){

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				String sendLetter = "b";
				conBTdevice.write(sendLetter);
			}
			
		});
		
		String sendLetter=null;
		if(Spielstarten()==true){
		double X=(double)(event.values[0]);
		int sXAchse=(int)(Math.round(X));	
		double Y=(double)(event.values[1]);
		int sYAchse=(int)(Math.round(Y));	
		if(sXAchse>=0){
			sendLetter="g";
		}
		if(sXAchse<=0){
			sendLetter="x";
		}
		if(sYAchse>=0){
			sendLetter="r";
		}
		if(sYAchse<=0){
			sendLetter="b";
		}
		acceleration.setText("X-Achse: "+sXAchse +" \nY-Achse: "+sYAchse);
		try{
		conBTdevice.write(sendLetter);
		}
		catch(Exception e){}
		}
		else{
			acceleration.setText("X-Achse: "+"\nY-Achse:");
		}
	}

Und dann stürzt alles ab.
 
Zuletzt bearbeitet:
Warum definierst du den Buttonlistener innerhalb der onSensorChanged-Methode?
 
@Techniker;
Das Problem ist auch genau das mit dem Listener des Buttons. Den solltest du schon in der onCreate() Methode definieren. Alles andere ist Schwachsinn und zeigt, dass du dich nicht wie oben geschrieben mal ordentlich und intensiv mit Java und Android beschäftigt hast.
 
Zuletzt bearbeitet von einem Moderator:
  • Danke
Reaktionen: kleinerkathe

Ähnliche Themen

BerndFfm
Antworten
7
Aufrufe
1.223
swa00
swa00
K
Antworten
3
Aufrufe
975
mezzothunder
mezzothunder
G
Antworten
0
Aufrufe
132
Gerdchen07
G
G
Antworten
1
Aufrufe
384
Gerdchen07
G
G
Antworten
13
Aufrufe
599
Gerdchen07
G
Zurück
Oben Unten