Android App-Crash bei Serverzugriff

Raven123

Mitglied
Hallo Leute,

ich möchte mit meiner App gerne auf einen Server zugreifen und habe für Testzwecke auf dem Server schon eine php-Datei abgelegt, die zum Aufrufnachweiß einfach eine txt-Datei erstellt. Wird die URL im Browser eingegeben, so wird die txt-Datei erstellt. Nun habe ich eine einfache App geschrieben, die beim Start einfach nur diese php-Datei aufrufen soll. Diese Testapp fordert ein Minimum von Android 2.2 (mein Handy hat dieses) und wenn ich sie mit meinem Handy oder einem 2.2 Emulator teste funktioniert alles. Sobald ich aber das Nexus 5 meines Bruders oder zB einen 4.1.2 Emulator benutze chrasht die App direkt beim Start und die php-Datei wird nicht aufgerufen!

Hat irgendeiner eine Idee woran das liegen könnte?


Viele Grüße,

Raven123
 

Raven123

Mitglied
Hier der Code, falls das weiterhilft (onCreate der MainActivity):

Java:
@Override
protected void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	setContentView(R.layout.activity_main);
		
	HttpClient client = new DefaultHttpClient();
//	String url = "URL";
	HttpPost httppost = new HttpPost("URL");
		
	try {
		Log.d("php", "vor execute");
		// Execute
		client.execute(httppost);
		Log.d("php", "nach execute");
			
	}catch (IOException e) {
		Log.e("php", e.toString());
	}
}
Sowohl mit dem HttpPost als auch mit new HttpGet(url) funktioniert das wie oben beschrieben nicht.

Desweiteren habe ich nur im Manifest die Permission für Internet gesetzt. Minimumversion ist 8 (Android 2.2) und Target 18 (Android 4.3).

MfG, Raven123
 

dzim

Top Contributor
Hast du mal versucht, zu debuggen? Hier in der Zeile 8 oder so einen Breakpoint zu setzen, und dann mal Schritt für Schritt zu schauen, wo es genau kracht?
Zusätzlich wäre wahrscheinlich auch der Stacktrace aus dem Log interessant. Wenn es eine fehlende Permission ist, würde es dort auch stehen.
 

Raven123

Mitglied
Beim Aufruf der execute fliegt sie raus, der erste Log("vor execute") wird noch angezeigt.
Die App funktioniert ja bei Android 2.2, gibt es denn zusätzliche Permissions bei höheren Versionen? Oder könnte es sein, dass man die Wartezeit für die Serverantwort noch irgendwie extra einstellen muss oder soetwas in der Art? Die App crasht zwar sofort, aber wenn das im Millisekundenbereich liegen würde könnte das ja durchaus sein. Leider kenn ich mich da zu wenig aus..

Mithilfe von
Java:
catch (Exception e) {
	Log.e("php", e.getStackTrace().toString());
}
bekomme ich als Text folgende Meldung:
[Ljava.lang.StackTraceElement;@414da658

Habe die IOException noch zu einer Exception geändert. Die App crasht nun zwar nicht mehr aber die php-Datei wird immer noch nicht aufgerufen.


MfG Raven123
 

dzim

Top Contributor
füge mal dem Log noch ein e an, also ändere am besten
Code:
Log.e("php", e.getStackTrace().toString());
nach
Code:
Log.e("php", "Error on fetching PHP generated page", e);
, dadurch sollte der ganze Stacktrace zu sehen sein, nicht nur die oberste Message.
Execute stürzt halt ab, warum wird aus der Meldung aber noch nicht sichtbar.
 

Dagobert

Bekanntes Mitglied
Wenn du das ganze auf einem Handy mit Android > 2.3 ausprobierst... musst du das ganze in einem AsyncTask o.ä. laufen lassen.

lg. Dagobert
 

dzim

Top Contributor
@Dagobert: Echt jetzt? Da ist mein Manko wohl, dass ich bisher explizit nie unter 4.0 entwickelt habe und dass ich es eh immer in Threads/AsyncTasks drin hatte...
 

Dagobert

Bekanntes Mitglied
Jop so sieht es aus^^.
Man lernt das sehr schmerzhaft... wenn ne App unter 2.3 lief... und es auf 4.x hunderte von abstürzen gibt :D

lg. Dagobert
 

Ähnliche Java Themen

Neue Themen


Oben