App Absturtz ohne Fehlermeldung der Zeile

  • Hallo,

    ich habe das Problem, dass meine App beim Drücken eines Buttons abstürzt. In der Log wird mir aber nicht angezeigt, in welcher Zeile das Problem liegt, nur das eine NullPointerException das Problem ist.

    Spoiler anzeigen


    java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference
    at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:401)
    at android.widget.ArrayAdapter.getView(ArrayAdapter.java:369)
    at android.widget.AbsListView.obtainView(AbsListView.java:2929)
    at android.widget.ListView.measureHeightOfChildren(ListView.java:1305)
    at android.widget.ListView.onMeasure(ListView.java:1212)
    at android.view.View.measure(View.java:20151)
    at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:716)
    at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:462)
    at android.view.View.measure(View.java:20151)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6328)
    at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1464)
    at android.widget.TableLayout.measureChildBeforeLayout(TableLayout.java:461)
    at android.widget.LinearLayout.measureVertical(LinearLayout.java:747)
    at android.widget.TableLayout.measureVertical(TableLayout.java:473)
    at android.widget.TableLayout.onMeasure(TableLayout.java:436)
    at android.view.View.measure(View.java:20151)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6328)
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
    at android.view.View.measure(View.java:20151)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6328)
    at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1464)
    at android.widget.LinearLayout.measureVertical(LinearLayout.java:747)
    at android.widget.LinearLayout.onMeasure(LinearLayout.java:629)
    at android.view.View.measure(View.java:20151)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6328)
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
    at com.android.internal.policy.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:3158)
    at android.view.View.measure(View.java:20151)
    at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2594)
    at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1549)
    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1841)
    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1437)
    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7397)
    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:920)
    at android.view.Choreographer.doCallbacks(Choreographer.java:695)
    at android.view.Choreographer.doFrame(Choreographer.java:631)
    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:906)
    at android.os.Handler.handleCallback(Handler.java:739)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:158)
    at android.app.ActivityThread.main(ActivityThread.java:7225)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)

  • Hi,

    kannst du bitte den Rest der App auch noch posten ?
    Hier ist zwar beschrieben, warum die App aussteigt, jedoch müsste ich dazu den Rest sehen.
    Danke Dir.

    Viele Grüße Carsten

    Humor ist....wenn man trotzdem lacht :saint:

  • Der Code:

  • Ja debug modus versucht nichts auffälliges gefunden.

    Allerdings habe ich gerade 2 Sachen bemerkt. Die Probleme treten auf einem Gerät mit Android 6.0 auf.
    1. Auf einem 2. Gerät mit Android 5.0 läuft die App ohne Absturzt, weswegen ich denke, dass das Problem in der Methode in Zeile 30 liegt. Da hier ja nur eine Methode extra ist, die auf Android 6.0 einfluss hat.
    2. Desweiteren stürzt die App auf dem Gerät mit Andorid 6.0 nicht ab, wenn ich für die Zeile 77 "setListAdapter(new ArrayAdapter<String>(getBaseContext(), android.R.layout.simple_list_item_1, discoveredDevicesNames));" statt der ArrayList "discoveredDevicesNames", eine neue Arraylist wie folgt anlege:

    - ArrayList<String> test = new ArrayList<>();
    - test.add("Test");
    - setListAdapter(new ArrayAdapter<String>(getBaseContext(), android.R.layout.simple_list_item_1, test));
    Wenn ich es so wie in Punkt 2 mache stürzt die App auch nicht ab.

    Einmal editiert, zuletzt von omax1 (4. Februar 2018 um 17:52)

  • Nein das Problem ist nicht behoben, denn wenn ich wie oben beschrieben in Punkt 2 eine andere Liste übergebe stürzt die App zwar nicht ab, jedoch brauch ich ja die ArrayList die ich vorher übergeben hatte.

  • Da stehen die Namen von Geräten, die über Bluetooth gefunden werden. In Zeile 75 wird in diese ArrayList geaddet wenn ein Gerät gefunden wurde.

    Edit1: Weiß nicht ob diese Info wichtig ist, aber die App hat vor 2 Wochen funktioniert gehabt. Habe die App dann heute nochmal gestartet und dann ging nichts mehr und habe am Code nichts verändert, dass wunder mich auch ein wenig. Kann das Problem am Gerät liegen aber wenn dann woran genau?

  • wie @toad schon sagte Versuche mit dem debugger herauszufinden wo die App abbricht. In dem du an der Stelle wo du es vermutest einen brackpoint setzt u dann im Einzelschritt weiter machst dabei immer im emulator schauen ob die App abbricht.
    Ich hoffe du kannst mit dem debugger umgehen.

  • evtl kannst du auch Logger einbauen (also zu bestimmten Punkten einen Text ausgeben lassen, der dann nur im LogCat auftaucht).
    so mache ich es, damit ich weiß und auch sehe und auch nachvollziehe, welchen Punkt das System passiert hat.
    Ich weiß, ist manchmal umständlich, aber mir hilft es.

    In der Zwischenzeit dürfte es aber ein Update bei AS gegeben haben. Das kann durchaus daran liegen.

    Wie sieht den deine Gradle Datei aus ?

    VG Carsten

    Humor ist....wenn man trotzdem lacht :saint:

  • An einem Update von AS dürfte es nicht liegen, da ich gerade ein backup einer apk von vor 2 wochen getestet habe und es läuft damit unter Android 6.0 auch nicht, jedoch unter Android 5.0 schon. Habe den verdacht, dass es mit den zusätzlichen Berechtigungen unter Android 6.0 zusammen hängt. Die Methode in Zeile 30, die die zusätzlichen Bluetooth-Berechtigungen abfragt, hab ich so aber schon mal getestet gehabt und es hat funktioniert.

  • ok so kommen wir der Sache schon näher.Denn in den ersten Beitrag klang das anders. Habe ich von Anfang an vermutet. Nur du hast es anders beschrieben.
    Und das garadle Datei währe auch sinnvoll.

  • Gradle von der Module:app nehme ich an :

    Spoiler anzeigen


    apply plugin: 'com.android.application'

    android {
    compileSdkVersion 26
    buildToolsVersion "26.0.1"
    defaultConfig {
    applicationId "com.ba.bluetoothchat"
    minSdkVersion 21
    targetSdkVersion 26
    versionCode 1
    versionName "1.0"
    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:26.+'
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
    testCompile 'junit:junit:4.12'
    }

  • ja du kompiliertst höher als 22. Du prüfst auf höher als 22 somit wird der Code nicht mit android 5 ausgeführt. Und dort ist sicher auch der Fehler. Schaue dir dazu das im Google Desktop an.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!