Projekt-Anfragen: Tel: 07022/9319004 info@CodeDocu.de Software Entwicklung in C# WPF Asp.Net Core Vba Excel Word SQL-Server EF Linq, UWP Net
#

Android Debug App stürzt ab
Wie debugged man eine Android App, Fehlercode, Absturz-Code
 
Problem: die Android App stürzt beim Debuggen ab, ohne dass eine sinnvolle Fehlermeldung ausgegeben wird.
Inhalt: ich versuche gerade über einen Java Code die Kontakte der Android Systems zu lesen.
Doch sobald ich eine Query über die Kontakte anfrage, stürzt die App ab.
Erstelle ich eine neue App welche auch auf die Kontakte mit Java zugreift, kommt kein Fehler.
 

 
Eigentlich frägt man die Android Kontakte in Java ab indem man über den contentResolver eine Query erstellt.
Der Java Code stürzt in der Zeile mit contentResolver.query ab


ContentResolver contentResolver = getContentResolver();

cursor = contentResolver.query(CONTENT_URI,
null,null, null, null);

// Iterate every contact in the phone
if (cursor.getCount() > 0) {

counter =
0;
while (cursor.moveToNext()) {
output =
new StringBuffer();


String contact_id = cursor.getString(cursor.getColumnIndex( _ID ));
String name = cursor.getString(cursor.getColumnIndex( DISPLAY_NAME ));

 

 
 
Es gibt leider bei Android Studio keine Einstellungen, bei welchen der Messagetext der Exception ausgegeben wird.
 
Die Permissions sind eigentlich gesetzt in der AndroidManifest.xml

 
 
 
Lösung:
Wenn eine App im Debug-Mode abstürzt, dann muss man im App Java Code  eine Try-Catch Block mit Exception einbauen
 

 
 
Fehler auslesen
Hier der Beispiel-Code zum Untersuchen des Fehlers mit Try und catch (Exception ex)

cursor=null;
ContentResolver contentResolver = getContentResolver();
try {
cursor = contentResolver.query(CONTENT_URI,
null,null, null, null);
}
catch (Exception ex)
{
Log.e(
"Content.Cursor",ex.getMessage() );
}

 

 
 
Hier die Meldung in Exception ex:

Permission Denial: opening provider com.android.providers.contacts.ContactsProvider2 from ProcessRecord{978a902 3375:de.rue25.fritzbox/u0a60} (pid=3375, uid=10060)
requires android.permission.READ_CONTACTS or android.permission.WRITE_CONTACTS
 

 
 
 
Lösung (gelöst):
Die Permissions werden scheinbar im Debug-Mode nicht neu installiert.
Man muss die App auf dem Virtual Device ein mal komplett deinstallieren.

 

When making changes to the app's manifest or resources referenced by the manifest, Android Studio automatically deploys a new build in order to apply these changes. This is because certain information about the app, such as its name, app icon resources, and intent filters, are determined from the manifest when the APK is installed on the device.
 
If your build process automatically updates any part of the app manifest, such as automatically iterating versionCode or versionName, you will not be able to benefit from the full performance of Instant Run. When using Instant Run, you should disable automatic updates to any part in the app manifest in your debug build variants.
 
When updating an Android widget UI element, you need to perform a Clean and Rerun to see your changes. Alternatively, because performing clean builds may take longer while using Instant Run, you can temporarily disable Instant Run while making updates to your widget UI.

 
 
Und in Menü->Build->Clean Project und Rebuild Project das Project komplett neu erstellen.

 
 
Die eigentliche Lösung hat Android aber erst angenommen, nachdem ich auch die Version der App hoch gesetzt habe.
Die Version einer Android App ändert man unter
App->rechte Maustaste->Dialog: Project Structure->app->Flavor->Version Code

 
Oder direkt in der Gradle
Mobile
»
Android Studio: App auf Handy mit USB Debugging
»
Debug App auf dem Virtual Device komplett löschen
»
Wie ändert man die Android App Version und Projekt Einstellungen
»
Android Debug App stürzt ab wegen Permission
»
Android Studio: Installation Android Studio 2 und Java JDK 8 unter Windows 10
»
Android Studio: Files auf dem Smartphone Device per File Explorer durchsuchen
»
Android Studio: Toolbar wieder einblenden und ausblenden

.

Jobs, Projekte, Angebote für Freiberufler, Selbstständig an Info@CodeDocu.de