Android App wird am Ende von onClick (View v) beendet

  • Antworten:46
  • OffenNicht stickyBentwortet
  • Forum-Beiträge: 29

06.04.2020, 20:25:48 via Website

Hallo zusammen,
ich bin dabei, eine Android App zu schreiben (mit Android Studio). Ich habe eine Start-Activity mit u.a. einem Button. Der Button ist mit einem OnClickListener verbunden. Bei Klick auf den Button wird onClick (View v) aufgerufen und arbeitet alles ab, was darin steht. Aber wenn onClick beendet wird, beendet sich die ganze App.

Ich hatte in der Methode schon den Aufruf eines Servlets, das klappt soweit einwandfrei: Im Servlet kommen die richtigen Daten an, und die App empfängt auch die Response des Servlets.

Um das Problem einzugrenzen, habe ich den Servlet-Aufruf erstmal wieder entfernt: Auch bei fast leerer onClick-Methode wird die App beendet, wenn ich im Debugger von der schliessenden Klammer der Methode einen Schritt weiter gehe.

Hier die Implementierung:

public class LoginActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);

    final Button loginButton = (Button) findViewById(R.id.loginButton);
    loginButton.setOnClickListener(new Button.OnClickListener() {
        public void onClick(View v) {
            EditText userNameText = (EditText) findViewById(R.id.userNameInput);
            final String userName = userNameText.getText().toString();
        }
    });
}
}

Woran kann es liegen? Vielen Dank für eure Hilfe
Gerhard

Diskutiere mit!
  • Forum-Beiträge: 3.501

06.04.2020, 20:30:09 via Website

Hallo,

ein ErrorLog würde grundsätzlich schon sehr weiterhelfen .
Was sagt dein Debugging ?

final String userName = userNameText.getText().toString();

Das "final" macht an dieser Stelle keinen Sinn - nimm mal alle deine finals heraus
Ist deine Edit -Resource auch vorhanden ?

— geändert am 06.04.2020, 20:34:04

Liebe Grüße - Stefan
[ App - Entwicklung ]

Hilfreich?
Diskutiere mit!
  • Forum-Beiträge: 29

06.04.2020, 21:01:07 via Website

Hallo Stefan,

danke für die superschnelle Antwort.

Ich vergaß zu schreiben, daß ich keinerlei Exception oder ähnliches sehe, nirgends nie nicht. Nur im Consolenfenster im Android Studio:
Connected to the target VM, address: 'localhost:8600', transport: 'socket'
Disconnected from the target VM, address: 'localhost:8600', transport: 'socket'

Und das Entfernen der finals bringt keinen Unterschied: Der Listener springt richtig an und bekommt den Text des Edit-Feldes (ja, das ist natürlich da und korrekt auslesbar), und nach der onClick wird die App beendet.

Im Debugging-Mode des Android Studio kann ich alle Statements als Breakpoints setzen (in onCreate und in onClick), da wird alles richtig durchlaufen. Nur daß ich eben nach der onClick in der App noch weitermachen möchte.

Viele Grüße
Gerhard

Hilfreich?
Diskutiere mit!
  • Forum-Beiträge: 3.501

06.04.2020, 21:31:49 via Website

Hallo Gerhardt,

ich sehe auch eigentlich keinen Fehler . Das müsste so rennen .
Gehe mal auf LogCat -> errors -> und schau mal nach was dort steht ?

Wie testest du ? ADB/USB ? Emulator ?

Liebe Grüße - Stefan
[ App - Entwicklung ]

Hilfreich?
Diskutiere mit!
  • Forum-Beiträge: 1.217

06.04.2020, 21:43:24 via Website

Hallo woher weißt du das der Listner richtig anspringt?

Ist das der gesamte Code oder hast du ihn gekürzt.
Hast du vielleicht noch eine Ausgabe die du nicht gezeigt hast?

Hilfreich?
Diskutiere mit!
  • Forum-Beiträge: 1.217

06.04.2020, 21:56:36 via Website

benutze mal nicht den Button.OnClickListener()

sondern den richtigen View.OnClickListener

loginButton.setOnClickListener(new View.OnClickListener() {

Hilfreich?
Diskutiere mit!
  • Forum-Beiträge: 29

06.04.2020, 23:07:44 via Website

Hallo,

ich teste über USB-Kabel auf meinem Motorola Handy. Motorola ist wohl die Ursache, daß die Logcat-Ausgabe ernorm zugemüllt wird. Auf deinen Hinweis hin fand ich darin u.a.:

E/art: invalid stream - problem with parameter iterator in /data/app/com.google.android.gms-1/base.apk:classes3.dex for method void com.google.android.gms.org.conscrypt.ConscryptFileDescriptorSocket.setSoWriteTimeout(int)

E/Surface: getSlotFromBufferLocked: unknown buffer: 0xb8f2d408

E/DeviceStateChecker: DeviceStateChecker cancelled

E/dex2oat: Failed to create oat file: /data/dalvik-cache/arm/data@app@testpackage-1@split_lib_dependencies_apk.apk@classes.dex: Permission denied

Mir helfen diese Meldungen aber auch nicht weiter.

Viele Grüße
Gerhard

Hilfreich?
Diskutiere mit!
  • Forum-Beiträge: 3.501

06.04.2020, 23:10:40 via Website

Mir helfen diese Meldungen aber auch nicht weiter.

Uns auch leider nicht , weil sie eine allgemeine Meldung und keine App-spezifische ist :-)

Du kannst auch mal nach der App filtern und mal schauen nach dem Schlüsselwort "Caused"

Liebe Grüße - Stefan
[ App - Entwicklung ]

Hilfreich?
Diskutiere mit!
  • Forum-Beiträge: 1.217

07.04.2020, 05:09:43 via Website

Hallo hast du das mit dem listner geändert und auch versucht?

Bis auf das du "Button" statt "View" benutzt ist der Code OK.

Versuche das erst bevor wir hier weiter machen.
Und wie schon gesagt das final weg beim String. Aber das würde nicht zum Abbruch führen.

— geändert am 07.04.2020, 06:39:13

Hilfreich?
Diskutiere mit!
  • Forum-Beiträge: 29

07.04.2020, 20:46:29 via Website

Hallo zusammen,

jetzt habe ich den View.OnClickListener verwendet: Kein sichtbarer Unterschied.

Die Source enthält noch die ganzen auskommentierten Zeilen, wo der Servlet-Zugriff implementiert war; aber das kann es ja auch nicht sein.

Daß der Listener anspringt, habe ich daran gemerkt, daß der Breakpoint angesprungen wurde, und daran, daß ja das Servlet aufgerufen und mit den richtigen Daten versorgt wurde, bevor ich das eben auskommentiert habe.

Jetzt habe ich die App mal im Run-Modus gestartet, nicht im Debug (auch aus Android Studio heraus und über USB-Kabel, aber mit dem Run-Button; damit stürzt die App nicht mehr ab. Und ich habe ein System.out.println eingefügt: Der Text wird tatsächlich ausgegeben, also springt auch hier der Listener an.

Daraufhin habe ich mal bei Edit Configuration reingeschaut und bei Debugger den Debug Type "Java" eingetragen (ja stand vorher: "Java", glaube ich). Nochmal getestet: die App bleibt bestehen. Nochmal IM DEBUG-MODUS (!) getestet: Die App bleibt bestehen.

Es wäre mir wohler, wenn ich jetzt wüsste, woran es gelegen hat :-) Aber ich denke, wir lassen es einfach so.

Bestätigt man in einem solchen Fall, daß eure Antworten hilfreich waren? Also danke jedenfalls für eure Zeit. Viele Grüße
Gerhard

Hilfreich?
Diskutiere mit!
  • Forum-Beiträge: 29

23.04.2020, 17:38:25 via Website

Hallo zusammen,
nach einer Unterbrechung bin ich wieder an meiner App, und das beschriebene Problem ist auch wieder da (auch mit Debug Type Java in der Debug Configuration): Ich kann im Debug-Modus die onClick-Methode des Buttons durchsteppen, bis zur schließenden Klammer der onClick. Mit dem nächsten F8 wird die App beendet.

Eure Empfehlungen habe ich eingearbeitet: Ich benutze setOnClickListener(new View.OnClickListener() {...}, Strings sind nicht final.

Ich habe aber jetzt festgestellt, daß das Verhalten irgendwie geräte-abhängig ist: Auf einem anderen Handy (Android 7.1) geht es einwandfrei. Meines ist Android 6.0; ich habe min-, target- und compileSdkVersion 23 in der build.gradle eingetragen.

Viele Grüße
Gerhard

Hilfreich?
Diskutiere mit!
  • Forum-Beiträge: 11.012

23.04.2020, 17:46:51 via App

Poste mal am besten deinen ganzen Error Log, vielleicht sieht man ja doch was.
Wenn du nur einen Listener mit einer Log Meldung oder Toast machst besteht das Problem weiter?
Ansonsten muss es irgendwo in Listener sein

LG Pascal //It's not a bug, it's a feature. :) ;)

Hilfreich?
Diskutiere mit!
  • Forum-Beiträge: 29

23.04.2020, 18:03:40 via Website

Ich habe aus dem Listener versuchsweise schon alles rausgeworfen; der komplette Listener ist momentan:
loginButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
EditText userNameText = (EditText) findViewById(R.id.userNameInput);
userName = userNameText.getText().toString();
EditText passwordText = (EditText) findViewById(R.id.passwordInput);
password = passwordText.getText().toString();
}
});

Das Logcat-Fenster wird auch vor Starten und nach Beenden der App fleißig weiter beschrieben, auch bei "Show only selected application"; ich weiß nicht, wie ich das auf die Meldungen beschränken kann, die zu meiner App gehören. Das komplette Logcat (oder der Logcat?) bei Level Info ist:
04-23 18:03:07.980 30801-30801/? I/art: Late-enabling -Xcheck:jni
04-23 18:03:08.023 30801-30801/? W/ActivityThread: Application dreikonapp.mincom2s.de.dreikonapp is waiting for the debugger on port 8100...
04-23 18:03:08.024 30801-30801/? I/System.out: Sending WAIT chunk
04-23 18:03:08.254 30801-30807/dreikonapp.mincom2s.de.dreikonapp I/art: Debugger is active
04-23 18:03:08.425 30801-30801/dreikonapp.mincom2s.de.dreikonapp I/System.out: Debugger has connected
04-23 18:03:08.425 30801-30801/dreikonapp.mincom2s.de.dreikonapp I/System.out: waiting for debugger to settle...
04-23 18:03:08.625 30801-30801/dreikonapp.mincom2s.de.dreikonapp I/System.out: waiting for debugger to settle...
04-23 18:03:08.825 30801-30801/dreikonapp.mincom2s.de.dreikonapp I/System.out: waiting for debugger to settle...
04-23 18:03:09.025 30801-30801/dreikonapp.mincom2s.de.dreikonapp I/System.out: waiting for debugger to settle...
04-23 18:03:09.225 30801-30801/dreikonapp.mincom2s.de.dreikonapp I/System.out: waiting for debugger to settle...
04-23 18:03:09.426 30801-30801/dreikonapp.mincom2s.de.dreikonapp I/System.out: waiting for debugger to settle...
04-23 18:03:09.626 30801-30801/dreikonapp.mincom2s.de.dreikonapp I/System.out: waiting for debugger to settle...
04-23 18:03:09.826 30801-30801/dreikonapp.mincom2s.de.dreikonapp I/System.out: debugger has settled (1416)
04-23 18:03:09.892 30801-30801/dreikonapp.mincom2s.de.dreikonapp W/art: Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg --debuggable --instruction-set=arm --instruction-set-features=smp,-div,-atomic_ldrd_strd --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=cortex-a53 --instruction-set-features=default --dex-file=/data/app/dreikonapp.mincom2s.de.dreikonapp-2/split_lib_dependencies_apk.apk --oat-file=/data/dalvik-cache/arm/data@app@dreikonapp.mincom2s.de.dreikonapp-2@split_lib_dependencies_apk.apk@classes.dex) because non-0 exit status
04-23 18:03:10.208 30801-30801/dreikonapp.mincom2s.de.dreikonapp W/art: Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg --debuggable --instruction-set=arm --instruction-set-features=smp,-div,-atomic_ldrd_strd --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=cortex-a53 --instruction-set-features=default --dex-file=/data/app/dreikonapp.mincom2s.de.dreikonapp-2/split_lib_slice_0_apk.apk --oat-file=/data/dalvik-cache/arm/data@app@dreikonapp.mincom2s.de.dreikonapp-2@split_lib_slice_0_apk.apk@classes.dex) because non-0 exit status
04-23 18:03:10.267 30801-30801/dreikonapp.mincom2s.de.dreikonapp W/art: Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg --debuggable --instruction-set=arm --instruction-set-features=smp,-div,-atomic_ldrd_strd --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=cortex-a53 --instruction-set-features=default --dex-file=/data/app/dreikonapp.mincom2s.de.dreikonapp-2/split_lib_slice_1_apk.apk --oat-file=/data/dalvik-cache/arm/data@app@dreikonapp.mincom2s.de.dreikonapp-2@split_lib_slice_1_apk.apk@classes.dex) because non-0 exit status
04-23 18:03:10.321 30801-30801/dreikonapp.mincom2s.de.dreikonapp W/art: Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg --debuggable --instruction-set=arm --instruction-set-features=smp,-div,-atomic_ldrd_strd --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=cortex-a53 --instruction-set-features=default --dex-file=/data/app/dreikonapp.mincom2s.de.dreikonapp-2/split_lib_slice_2_apk.apk --oat-file=/data/dalvik-cache/arm/data@app@dreikonapp.mincom2s.de.dreikonapp-2@split_lib_slice_2_apk.apk@classes.dex) because non-0 exit status
04-23 18:03:10.379 30801-30801/dreikonapp.mincom2s.de.dreikonapp W/art: Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg --debuggable --instruction-set=arm --instruction-set-features=smp,-div,-atomic_ldrd_strd --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=cortex-a53 --instruction-set-features=default --dex-file=/data/app/dreikonapp.mincom2s.de.dreikonapp-2/split_lib_slice_3_apk.apk --oat-file=/data/dalvik-cache/arm/data@app@dreikonapp.mincom2s.de.dreikonapp-2@split_lib_slice_3_apk.apk@classes.dex) because non-0 exit status
04-23 18:03:10.438 30801-30801/dreikonapp.mincom2s.de.dreikonapp W/art: Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg --debuggable --instruction-set=arm --instruction-set-features=smp,-div,-atomic_ldrd_strd --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=cortex-a53 --instruction-set-features=default --dex-file=/data/app/dreikonapp.mincom2s.de.dreikonapp-2/split_lib_slice_4_apk.apk --oat-file=/data/dalvik-cache/arm/data@app@dreikonapp.mincom2s.de.dreikonapp-2@split_lib_slice_4_apk.apk@classes.dex) because non-0 exit status
04-23 18:03:10.498 30801-30801/dreikonapp.mincom2s.de.dreikonapp W/art: Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg --debuggable --instruction-set=arm --instruction-set-features=smp,-div,-atomic_ldrd_strd --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=cortex-a53 --instruction-set-features=default --dex-file=/data/app/dreikonapp.mincom2s.de.dreikonapp-2/split_lib_slice_5_apk.apk --oat-file=/data/dalvik-cache/arm/data@app@dreikonapp.mincom2s.de.dreikonapp-2@split_lib_slice_5_apk.apk@classes.dex) because non-0 exit status
04-23 18:03:10.561 30801-30801/dreikonapp.mincom2s.de.dreikonapp W/art: Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg --debuggable --instruction-set=arm --instruction-set-features=smp,-div,-atomic_ldrd_strd --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=cortex-a53 --instruction-set-features=default --dex-file=/data/app/dreikonapp.mincom2s.de.dreikonapp-2/split_lib_slice_6_apk.apk --oat-file=/data/dalvik-cache/arm/data@app@dreikonapp.mincom2s.de.dreikonapp-2@split_lib_slice_6_apk.apk@classes.dex) because non-0 exit status
04-23 18:03:10.616 30801-30801/dreikonapp.mincom2s.de.dreikonapp W/art: Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg --debuggable --instruction-set=arm --instruction-set-features=smp,-div,-atomic_ldrd_strd --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=cortex-a53 --instruction-set-features=default --dex-file=/data/app/dreikonapp.mincom2s.de.dreikonapp-2/split_lib_slice_7_apk.apk --oat-file=/data/dalvik-cache/arm/data@app@dreikonapp.mincom2s.de.dreikonapp-2@split_lib_slice_7_apk.apk@classes.dex) because non-0 exit status
04-23 18:03:10.670 30801-30801/dreikonapp.mincom2s.de.dreikonapp W/art: Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg --debuggable --instruction-set=arm --instruction-set-features=smp,-div,-atomic_ldrd_strd --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=cortex-a53 --instruction-set-features=default --dex-file=/data/app/dreikonapp.mincom2s.de.dreikonapp-2/split_lib_slice_8_apk.apk --oat-file=/data/dalvik-cache/arm/data@app@dreikonapp.mincom2s.de.dreikonapp-2@split_lib_slice_8_apk.apk@classes.dex) because non-0 exit status
04-23 18:03:10.723 30801-30801/dreikonapp.mincom2s.de.dreikonapp W/art: Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg --debuggable --instruction-set=arm --instruction-set-features=smp,-div,-atomic_ldrd_strd --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=cortex-a53 --instruction-set-features=default --dex-file=/data/app/dreikonapp.mincom2s.de.dreikonapp-2/split_lib_slice_9_apk.apk --oat-file=/data/dalvik-cache/arm/data@app@dreikonapp.mincom2s.de.dreikonapp-2@split_lib_slice_9_apk.apk@classes.dex) because non-0 exit status
04-23 18:03:10.729 30801-30801/dreikonapp.mincom2s.de.dreikonapp W/System: ClassLoader referenced unknown path: /data/app/dreikonapp.mincom2s.de.dreikonapp-2/lib/arm
04-23 18:03:10.733 30801-30801/dreikonapp.mincom2s.de.dreikonapp I/InstantRun: starting instant run server: is main process
04-23 18:03:10.991 30801-30801/dreikonapp.mincom2s.de.dreikonapp W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable
04-23 18:03:11.131 30801-30893/dreikonapp.mincom2s.de.dreikonapp I/Adreno-EGL: : EGL 1.4 QUALCOMM build: (I14a17c7611)
OpenGL ES Shader Compiler Version: XE031.06.00.02
Build Date: 12/04/15 Fri
Local Branch: workspace
Remote Branch:
Local Patches:
Reconstruct Branch:
04-23 18:03:11.133 30801-30893/dreikonapp.mincom2s.de.dreikonapp I/OpenGLRenderer: Initialized EGL, version 1.4
04-23 18:03:11.201 30801-30801/dreikonapp.mincom2s.de.dreikonapp W/art: Before Android 4.1, method int android.support.v7.widget.ListViewCompat.lookForSelectablePosition(int, boolean) would have incorrectly overridden the package-private method in android.widget.ListView

Danke für eure Mühe und viele Grüße
Gerhard

Hilfreich?
Diskutiere mit!
  • Forum-Beiträge: 11.012

23.04.2020, 18:33:55 via Website

Wird dir auch logCat in ROT angezeigt?
Weil das sind die eigentlichen Errors/Exceptions.

In dem Log kann ich keinen Absturz erkennen, ist das wirklich der gesamte log im VERBOSE Modus vom Start bis zum Absturz?

Nutzt du in deiner App ListViews/ListViewCompat o.ä.?

Vielleicht ist das ja ein Hinweis?

Before Android 4.1, method int android.support.v7.widget.ListViewCompat.lookForSelectablePosition(int, boolean) would have incorrectly overridden the package-private method in android.widget.ListView

Irgendwas scheint ihn zu stören...

Ich glaube nicht dass es alleim am Listener liegt...

Irgendwelche CustomRoms/XPOSED/ sonst was installiert?

Ansonsten erstelle mal ein neues App Projekt in AS und teste da deinen Code.

Edit: Ich glaube nicht dass die App bei dem Log schon abgestürtzt ist, der Log umfasst 3 Sek, da hast du den Button nicht gedrückt

— geändert am 23.04.2020, 18:40:24

LG Pascal //It's not a bug, it's a feature. :) ;)

Hilfreich?
Diskutiere mit!
  • Forum-Beiträge: 1.217

23.04.2020, 18:51:39 via Website

Hallo
Für mich sieht das nach einem Fehler mit Multidex aus.
Wie ich sehe arbeitest du noch mit Android 4.1.
Es scheint etwas nicht mit deinem Supportlibs, vor allen der multidex:1.0.0 zu stimmen.

Zeige mal dein Gradle File.

Du hast bestimmt viel Code viele Methoden und Klasse auch bestimmt viele Support Libs. Die nicht alle in eine Dex Datei passen und bei dem Muldidex geht etwas schief . das sagen vor allen die vielen Warnungen.

W/art: Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg --debuggable --instruction-set=arm --instruction-set-features=smp,-div,-atomic_ldrd_strd --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=cortex-a53 --instruction-set-features=default --dex-file=/data/app/dreikonapp.mincom2s.de.dreikonapp-2/split_lib_slice_0_apk.apk --oat-file=/data/dalvik-cache/arm/data@app@dreikonapp.mincom2s.de.dreikonapp-2@split_lib_slice_0_apk.apk@classes.dex) because non-0 exit status

— geändert am 24.04.2020, 08:55:36 durch Moderator

Hilfreich?
Diskutiere mit!
  • Forum-Beiträge: 29

23.04.2020, 19:11:07 via Website

Hallo zusammen,
ListView, ListViewCompat benutze ich nicht oder nicht gewollt (die design\R.java enthält Treffer mit ListView, aber die Datei ist doch nicht von mir, das kann es doch nicht sein); CustomRoms, XPOSED, Multidex sind mir noch nicht einmal nicht bekannt. In Gradle habe ich sdk 23 angegeben; wo kommt dann Android 4.1 her?

Hier mein build.gradle:
apply plugin: 'com.android.application'

android {
compileSdkVersion 23
buildToolsVersion '26.0.0'
defaultConfig {
applicationId "dreikonapp.mincom2s.de.dreikonapp"
minSdkVersion 23
targetSdkVersion 23
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
}
productFlavors {
}
}

dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
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:23.+'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'com.android.support:design:23.+'
compile 'com.journeyapps:zxing-android-embedded:3.3.0@aar'
compile 'com.google.zxing:core:3.3.1'
testCompile 'junit:junit:4.12'
}

Hilfreich?
Diskutiere mit!
  • Forum-Beiträge: 1.217

23.04.2020, 20:39:50 via Website

doch das ist schon deine App habe nur den Anfang weg gelassen.

Nur sind es eben nur Warnungen und kein Error die ist normalerweise Rot und beginnt mir E/ .

Aber dein Gradle ist schon alt du sollte es mal auf den neuen stand bringen. „Compile“ ist veraltest sollte jetzt „implementation“ benutzen.

Erstelle dir mal ein neues Projekt und schaue wie es heute ausehen sollte.

Auch würde ich auf Androidx umstellen und nicht mehr mit den SupportLibs arbeiten.

Auch die buildToolsVersion '26.0.0' würde ich erhöhen auf 26.0.3 du solltest schon immer actuell sein wenn es unbedingt eine 26 Version sein muss.

Am besten benutze die aktuellste oder gar keine. Dann wird die neuste benutzt die du als Sdk auf dem Rechner hast.

Was ist überhaupt die die größte SDK in deinem SDK Manager? Da solltest du auch 29 haben. Mindestens 28 um auch Andoidx benutzen zu können.

Ich denke du machst mal ein ordentliches Update.

Hilfreich?
Diskutiere mit!
  • Forum-Beiträge: 1.217

23.04.2020, 20:43:37 via Website

ein Gradle neu mit Support libs siet etwa so aus .

apply plugin: 'com.android.application'

android {
compileSdkVersion 29
buildToolsVersion "29.0.3"

defaultConfig {
    applicationId "com.jw.myapplication"
    minSdkVersion 23
    targetSdkVersion 29
    versionCode 1
    versionName "1.0"

    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
}

}

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])

//noinspection GradleCompatible
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

}

Hilfreich?
Diskutiere mit!
  • Forum-Beiträge: 29

24.04.2020, 17:37:07 via Website

Hallo,
jetzt habe ich Android Studio auf 3.6.3 hochgezogen. Muß ich Gradle noch separat updaten? Ich habe außerdem das ganze Projekt gelöscht und noch mal ganz von vorn erzeugt (New Project -> Empty Activity).

Das build.gradle ist jetzt:
apply plugin: 'com.android.application'

android {
compileSdkVersion 29
buildToolsVersion "29.0.3"

defaultConfig {
    applicationId "de.mincom2s.dreikonapp"
    minSdkVersion 23
    targetSdkVersion 29
    versionCode 1
    versionName "1.0"

    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
}

}

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])

implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'

}

Die Hello-World App funktioniert damit (naja, was man so funktionieren nennen kann).

Dann habe ich sie erweitert zu einem Dialog, der mal ein Login-Dialog werden soll: Bisher nur die Edit-Felder Name und Passwort und den Login-Button; der hat einen onClickListener (mit View.OnClickListener( und die onClick-Methode, die nur die Werte in Variablen ausliest, sonst bisher nichts, kein Xzing, keine weitere Klasse, keine Methode, etc.

Damit alles komplett ist, hier auch noch die ganze Activity-Klasse:
public class LoginActivity extends AppCompatActivity {

String userName="";
String password="";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);

    Button loginButton = (Button) findViewById(R.id.loginButton);
    loginButton.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            // Code here executes on main thread after user presses button
            EditText userNameText = (EditText) findViewById(R.id.userNameInput);
            userName = userNameText.getText().toString();
            EditText passwordText = (EditText) findViewById(R.id.passwordInput);
            password = passwordText.getText().toString();
        }
    });
}

}

Das Verhalten wie vorher: Die App startet ordentlich, sieht aus wie gewünscht; wenn ich auf den Button klicke, springt der Breakpoint in onClick an; onClick wird ordentlich durchlaufen, die eingetippten Werte kommen als Variablen an, alles prima. Nur wenn die onClick verlassen wird, wird die App beendet.

Der komplette Logcat-Inhalt (Level Verbose) ist:
04-24 17:21:35.160 17890-17890/? I/art: Late-enabling -Xcheck:jni
04-24 17:21:35.242 17890-17890/de.mincom2s.dreikonapp W/ActivityThread: Application de.mincom2s.dreikonapp is waiting for the debugger on port 8100...
04-24 17:21:35.244 17890-17890/de.mincom2s.dreikonapp I/System.out: Sending WAIT chunk
04-24 17:21:35.414 17890-17896/de.mincom2s.dreikonapp I/art: Debugger is active
04-24 17:21:35.444 17890-17890/de.mincom2s.dreikonapp I/System.out: Debugger has connected
04-24 17:21:35.444 17890-17890/de.mincom2s.dreikonapp I/System.out: waiting for debugger to settle...
04-24 17:21:35.644 17890-17890/de.mincom2s.dreikonapp I/System.out: waiting for debugger to settle...
04-24 17:21:35.845 17890-17890/de.mincom2s.dreikonapp I/System.out: waiting for debugger to settle...
04-24 17:21:36.045 17890-17890/de.mincom2s.dreikonapp I/System.out: waiting for debugger to settle...
04-24 17:21:36.245 17890-17890/de.mincom2s.dreikonapp I/System.out: waiting for debugger to settle...
04-24 17:21:36.445 17890-17890/de.mincom2s.dreikonapp I/System.out: waiting for debugger to settle...
04-24 17:21:36.645 17890-17890/de.mincom2s.dreikonapp I/System.out: waiting for debugger to settle...
04-24 17:21:36.846 17890-17890/de.mincom2s.dreikonapp I/System.out: waiting for debugger to settle...
04-24 17:21:37.046 17890-17890/de.mincom2s.dreikonapp I/System.out: debugger has settled (1482)
04-24 17:21:37.055 17890-17890/de.mincom2s.dreikonapp W/System: ClassLoader referenced unknown path: /data/app/de.mincom2s.dreikonapp-2/lib/arm
04-24 17:21:37.099 17890-17890/de.mincom2s.dreikonapp W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter androidx.vectordrawable.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable
04-24 17:21:37.139 17890-17890/de.mincom2s.dreikonapp I/art: Rejecting re-init on previously-failed class java.lang.Class
04-24 17:21:37.139 17890-17890/de.mincom2s.dreikonapp I/art: Rejecting re-init on previously-failed class java.lang.Class
04-24 17:21:37.264 17890-17920/de.mincom2s.dreikonapp D/OpenGLRenderer: Use EGL_SWAP_BEHAVIOR_PRESERVED: true
04-24 17:21:37.337 17890-17920/de.mincom2s.dreikonapp I/Adreno-EGL: : EGL 1.4 QUALCOMM build: (I14a17c7611)
OpenGL ES Shader Compiler Version: XE031.06.00.02
Build Date: 12/04/15 Fri
Local Branch: workspace
Remote Branch:
Local Patches:
Reconstruct Branch:
04-24 17:21:37.341 17890-17920/de.mincom2s.dreikonapp I/OpenGLRenderer: Initialized EGL, version 1.4

Weder in Android Studio noch auf dem Handy finde ich eine Exception, Fehlermedlung, Meldung, Warnung, die mir weiterhelfen würde.

Da die App auf dem Handy meiner Frau funktioniert, muß die Ursache doch irgendwo in meinem Handy liegen. Ich habe aber keine Idee, wonach ich suchen könnte.

Viele Grüße
Gerhard

Hilfreich?
Diskutiere mit!
Empfohlene Artikel bei NextPit