[ERLEDIGT] App does not run under higher versions (up to API 25)

S

Schorsch2014

Neues Mitglied
3
Hello,

Last year I developed a calendar management app with Android Studio 1.1, which worked flawlessly on both Android 2.3.3 (Gingerbread) and Android 4.1.2 (Jelly Bean).
After trying to run this app on Android 6.0.2 or 7.0 this year, I get an error message: "Calendar management paused" (German: "Kalender-Verwaltung angehalten").
Then I installed Android Studio 2.3.1, but had to de-install and re-install the development environment (and the Java IDE) several times before I finally got back to the SDK manager.
Meanwhile, the app runs again under Android 4.1.2 (with slightly different color settings, etc.), but still not under Rel. 6.0.2 (Marshmallow), for example.
Unfortunately, I have no idea what it could be, especially since I specified API 25 as compileSdkVersion and as targetSdkVersion (see the contents of build.gradle (Module: app) below):

build.gradle (Module: app):
===========================
apply plugin: 'com.android.application'

android {
compileSdkVersion 25
buildToolsVersion "25.0.0"
defaultConfig {
applicationId "hjb.kalender"
minSdkVersion 16
targetSdkVersion 25
versionCode 3
versionName "3.0 - 20171128"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
//compile 'com.android.support:appcompat-v7:27.+'
compile 'com.android.support:appcompat-v7:25.0.0'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
testCompile 'junit:junit:4.12'
}



build.gradle (Project: Calendar):
=================================
// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.1'

// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}

allprojects {
repositories {
jcenter()
}
}

task clean(type: Delete) {
delete rootProject.buildDir
}


What could be the reason that my app does not run under higher versions (up to API 25) ?
 
Es wäre nett, wenn Du Deinen Text auf Deutsch editierst. Du kannst es... ;)
Danke!
 
Danke für den Hinweis, ich freue mich sehr, dass es eine deutschsprachige Android-Plattform gibt, damit habe ich gar nicht mehr gerechnet, da ich bisher bei Suchen per Suchmaschine fast nur englische Artikel zu Gesicht bekam !
Also wiederhole ich meinen o.a. Text nochmal auf deutsch:

Hallo,

ich hatte letztes Jahr mit Android Studio 1.1 eine App "Kalender-Verwaltung" entwickelt, die sowohl unter Android 2.3.3 (Gingerbread) als auch unter Android 4.1.2 (Jelly Bean) einwandfrei funktionierte.
Nachdem ich dieses Jahr versucht hatte, diese App unter Android 6.0.2 oder 7.0 laufen zu lassen, kommt sofort eine Fehlermeldung: "Kalender-Verwaltung angehalten".
Daraufhin habe ich Android Studio 2.3.1 installiert, musste die Entwicklungsumgebung (und auch die Java-IDE) aber etliche Male de- und reinstallieren, bis ich endlich wieder auf den SDK-Manager zugreifen konnte.
Mittlerweile läuft die App wieder unter unter Android 4.1.2 (mit etwas veränderten Farb-Einstellungen, etc.), aber nach wie vor nicht unter Rel. 6.0.2 (Marshmallow) beispielsweise.
Ich habe leider keine Idee, woran es liegen könnte, zumal ich als compileSdkVersion und als targetSdkVersion API 25 angegeben habe (siehe nachfolgend den Inhalt von build.gradle (Module: app)):

build.gradle (Module: app):
==============================================================
apply plugin: 'com.android.application'

android {
compileSdkVersion 25
buildToolsVersion "25.0.0"
defaultConfig {
applicationId "hjb.kalender"
minSdkVersion 16
targetSdkVersion 25
versionCode 3
versionName "3.0 - 20171128"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
//compile 'com.android.support:appcompat-v7:27.+'
compile 'com.android.support:appcompat-v7:25.0.0'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
testCompile 'junit:junit:4.12'
}



build.gradle (Project: Kalender):
================================================================
// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.1'

// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}

allprojects {
repositories {
jcenter()
}
}

task clean(type: Delete) {
delete rootProject.buildDir
}

Meine Frage:
==========
Woran könnte es liegen, dass meine App nicht unter höheren Versionen (bis API 25) läuft ?
 
  • Danke
Reaktionen: 398580
Hallo,

was sagt den der LogCat beim Absturz der App?

Gruß
 
Danke für die Rückfrage und sorry,
dass meine Antwort etwas gedauert hat, aber ich bin noch nicht besonders fit in puncto Android.
Ich habe mich zuerst ein wenig schlau gemacht bzgl. LogCat und mir dann die App "aLogcat" aus dem Google Play Store heruntergeladen und installiert. Leider kann ich im Log-Protokoll nichts finden (siehe beigefügte Log-Datei), obwohl ich meine App mehrmals gestartet habe. Ich bin mir jedoch nicht sicher, ob ich die App "aLogcat" richtig eingesetzt habe, deshalb habe ich in meiner App ganz zu Beginn der Methode "onCreate" (noch vor der Anweisung "super.onCreate(savedInstanceState);" die Ausgabe eines Popup-Fensters eingebaut:
Während der Popup-Text beim Start meiner App auf meinem Samsung-S2-Handy (Vers. 4.1.2) erscheint, kommt bei meinem Samsung-Note4-Handy sofort die ganz oben zitierte Fehlermeldung "Programm angehalten. OK". Nach dem Tippen auf "OK" verschwindet das Popup mit der Fehlermeldung und das wars dann, von meiner App ist nichts zu sehen.

Viele Grüße
Schorsch2014
[doublepost=1512412877,1512412625][/doublepost]Nachtrag: Das Samsung-Note4-Handy hat Version 6.0.1
 

Anhänge

  • aLogcat_HJBkal_20171204..txt
    10,1 KB · Aufrufe: 125
Hallo,

die App kannst du erstmal wieder deinstallieren ;-) Das ist wohl ein Logcat, aber nicht von deiner App.

Das mit dem LogCat ist auf das Android Studio bezogen. (Mich wundert nur, das du eine App entwickelt hast ohne Log Ausgaben)
Du hast unten Links einen Reiter Android Monitor, dort kannst du dann bei "No Connected Device" dein Handy auswählen und dann bei "No Debuggable Processes" dein Package Name auswählen(geht nur wenn die App einmal gestartet wurde während Android Studio läuft)
upload_2017-12-4_20-44-38.png


Wenn du deine App dann einmal gestartet hast und diese Abgestürzt ist, dann hast du dort einige Error Einträge, diese dann nochmal hier Posten und dann kann man auch sehen wo der Schuh drückt.

Gruß
 
Ok,
ich hab's versucht, aber dazu benötige ich wohl die Emulationsbausteine, die ich allerdings bei Android Studio 2.3.1 nicht mitinstalliert habe, weil ich zuvor bei Android Studio 1.1 unter Windows 7 keinen Erfolg damit hatte. Damals lief rein gar nichts, sodass ich dann ein externes Emulationstool (Genymotion) installiert habe, aber mit der Zeit habe ich dann nur noch direkt auf meinem Handy getestet - bei Bedarf mithilfe der Ausgabe von Inhalten in einem Popup-Fenster (wie schon oben beschrieben) - und das lief eigentlich ganz gut !
Heute klappt es nicht mehr, aber morgen werde ich die Emulationsbausteine bei Android Studio nachinstallieren und dann melde ich mich wieder.

Gruß
Schorsch2014
 
Nur mal als Hinweis, du kannst am besten dein reales Handy mit USB mit deinem PC verbinden und dann die App dort ausführen und während dessen siehst du dann auch die LogCat Ausgaben. (Bei den Entwickleroptionen an deinem Handy muss die Debugausgabe aktiviert werden(Was ist USB-Debugging und wie kann ich es aktivieren?))

Also du brauchst keinen langsamen Emulator.
 
Hallo,
nach endlosen Fehlversuchen (mit USB-Tethering mangels USB-Debugging) incl. Wechsel des USB-Kabels wegen Wackelkontakt habe ich dann bei der Lektüre der x-ten Beschreibung den Stein des Weisen gefunden:
Durch 7-maliges Tippen auf die Build-Nummer unter "Einstellungen - System - Geräte-Infos" erschien wie von Geisterhand die zusätzliche Option "Entwickleroptionen" und darunter auch die Option "USB-Debugging" auf meinem Samsung-Note4-Handy.
Da ich mir bzgl. einer korrekten Durchführung des Debuggings gar nicht sicher bin, habe ich gleich mehrere Versuche gestartet und im Nachhinein auch noch alle benötigten Emulationsbausteine Zug um Zug installiert, um mittels Emulation ebenfalls noch ein paar Versuche zu starten. Die mehr oder weniger großen LogCat-Dateien (5) habe ich dieser Antwort beigefügt. Ich kann nicht wirklich sagen, dass ich bei der Fehlersuche (ich habe überwiegend mit dem Kürzel "hjb" gesucht) schon einen Durchbruch erzielt habe, am vielversprechendsten scheint mir die Meldung aus dem Espresso-Test.

Gruß Schorsch_2014
 

Anhänge

  • LogCat_HJBkal_komplett_20171206.txt
    1.003,3 KB · Aufrufe: 112
  • LogCat_hjb.kalender_Record Espresso Test_20171206.txt
    7,3 KB · Aufrufe: 130
  • LogCat_hjb.kalender_20171207.txt
    185,9 KB · Aufrufe: 323
  • LogCat_hjb.kalender_Emulator_Unicode_20171207_v2.doc
    85,5 KB · Aufrufe: 171
  • LogCat_hjb.kalender_Emulator_Unicode_20171207.doc
    1,4 MB · Aufrufe: 266
Dein Instinkt hat dich nicht getrügt. Das hier im Espresso sagt doch schon alles:

Code:
Caused by: java.lang.IllegalStateException: This message cannot be recycled because it is still in use.
    at android.os.Message.recycle(Message.java:279)
    at hjb.kalender.ModalDialog.doModal(ModalDialog.java:226)
    at hjb.kalender.ModalDialog.showAlertDialog(ModalDialog.java:53)
    at hjb.kalender.Hinweis.Popup_Fenster_1B(Hinweis.java:33)
    at hjb.kalender.Settings.readSettingsFile(Settings.java:231)
    at hjb.kalender.MainActivity.onCreate(MainActivity.java:39)

Am besten den LogCat filter auf E stellen falls es schwerwiegende Probleme wie einen App Absturz gibt, sonst ist es schwer sich durch tausende Zeilen V,D und I-Fehler durchzulesen!
 
Vielen Dank Jaiel und 123thomas,
Ihr habt mir sehr geholfen ! Nachdem ich in meiner Klasse "ModalDialog" (enthält Funktionen zur Darstellung von Texten mit 1, 2 oder 3 Buttons, die auf eine Eingabe des Benutzers warten und den kompletten Ablauf meiner App steuern) die zum Absturz führende recycle-Anweisung in einen try-Block gepackt habe, startet meine App absturzfrei und ich kann jetzt wenigstens schon mal etliche Teile meiner Anwendung optisch erkennen. Allerdings werden alle ListViews - die ebenfalls zu den zentralen Funktionsbestandteilen meiner App zählen - nur total verstümmelt dargestellt (im Gegensatz zu früheren Android-Versionen - bis 4.1.2), sodass ich noch einiges zu tun habe. Dies wird jedoch noch eine Zeit lang dauern, deshalb schließe ich erst mal dieses Problem und wünsche Euch besinnliche Weihnachtsfeiertage sowie einen guten Start ins neue Jahr !

Gruß Schorsch2014
 
  • Danke
Reaktionen: 123thomas und 398580

Ähnliche Themen

2
Antworten
6
Aufrufe
226
24559
2
U
  • unerfahrenerAppEntwickler
Antworten
3
Aufrufe
666
swa00
swa00
Zurück
Oben Unten