1. Mitglieder surfen ohne Werbung auf Android-Hilfe.de! ✔ Jetzt kostenlos Mitglied in unserer Community werden.
  1. znieh99, 22.07.2018 #1
    znieh99

    znieh99 Threadstarter Android-Hilfe.de Mitglied

    Hallo Forum,
    ich verwende ein shape in drawable welches mir runde Kanten bei LinearLayouts ermöglichen soll. Das hat auch schon funktioniert (auch auf meiner HW ein LG-H525n). Nun funktioniert es zwar im Emulator aber nicht auf der HW. (Fehlermeldung: "Leider wurde das Programm Akkuschoner beendet"). Entferne ich die Zeile "android:background="@drawable/round_corner" aus dem LinearLayout funktioniert es auch auf der HW.
    lg Heinz

    drawable/round_corner.xml(v24):
    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    
    <!-- Definiert abgerundete Ecken und die Hintergrundfarbe für ein Layout -->
    
    <shape xmlns:android="http://schemas.android.com/apk/res/android">
        <solid android:color="#393939"/>
    
        <stroke android:width="1dp"
            android:color="#555555"/>
    
        <padding android:left="1dp"
            android:top="1dp"
            android:right="1dp"
            android:bottom="1dp"/>
    
        <corners android:bottomRightRadius="7dp" android:bottomLeftRadius="7dp"
            android:topLeftRadius="7dp" android:topRightRadius="7dp"/>
    </shape>

    Der run-log sagt:
    D/AndroidRuntime: Shutting down VM
    E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.app.heinz.akkuschoner, PID: 23879
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.app.heinz.akkuschoner/com.app.heinz.akkuschoner.MainActivity}: android.view.InflateException: Binary XML file line #11: Binary XML file line #11: Error inflating class <unknown>
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2434)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2494)
    at android.app.ActivityThread.access$900(ActivityThread.java:157)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1356)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:148)
    at android.app.ActivityThread.main(ActivityThread.java:5527)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:730)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620)
    Caused by: android.view.InflateException: Binary XML file line #11: Binary XML file line #11: Error inflating class <unknown>
    at android.view.LayoutInflater.inflate(LayoutInflater.java:539)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
    at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287)
    at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
    at com.app.heinz.akkuschoner.MainActivity.onCreate(MainActivity.java:12)
     
  2. markus.tullius, 22.07.2018 #2
    markus.tullius

    markus.tullius Android-Lexikon

    Ich bin mir nicht sicher, aber der Fehler sieht so aus, als hätte dein Handy die falsche Android Version. Dein XML liegt im Ordner v24 (Android 7.0), dein Handy hat nur Android 5, wenn ich mich richtig erinnere.

    Dh. dein Handy zieht keine XML aus dem Ordner v24 an, was zu ein InflateException führt.
     
    znieh99 bedankt sich.
  3. znieh99, 22.07.2018 #3
    znieh99

    znieh99 Threadstarter Android-Hilfe.de Mitglied

    Hallo Markus,
    mein Handy hat Android 6.0. ist aber wohl auch zu gering. Ein Widerspruch ist, dass es ja schon funktioniert hat. Mir ist der Ordner v24 auch erst in den letzten Tagen aufgefallen.
    Was kann ich tun?
    lg heinz
    -- Dieser Beitrag wurde automatisch mit dem folgenden Beitrag zusammengeführt --
    Ich habe gerade eine älteren Version der App wo drawable/round_corner.xml nicht im Ordner v24 steht probiert und diese funktioniert. ?
     
  4. jogimuc, 22.07.2018 #4
    jogimuc

    jogimuc Android-Hilfe.de Mitglied

    Eigentlich haben die Ordner mehr mit den Auflösungen zu tunen. Klar das bei den neueren API auch auf die größeren hochauflösenden Displays eingegangen wird.
    Speichere deine drawaple im hauptordner und nicht im v24.

    Glaube das verhält sich ähnlich wie mit den layout Ordnern.
     
    znieh99 bedankt sich.
  5. znieh99, 22.07.2018 #5
    znieh99

    znieh99 Threadstarter Android-Hilfe.de Mitglied

    @jogimuc
    Bingo - das war's! Herzlichen Dank
     
  6. markus.tullius, 22.07.2018 #6
    markus.tullius

    markus.tullius Android-Lexikon

    Versuche mal das, was @jogimuc vorschlägt. Den Ordner gibt es, weil bestimmte Feature erst ab bestimmte Android vorhanden sind, bzw. geändert haben.

    Mit der Auflösung hat der Ordner nicht zu tun. ;)

    Resource types overview  |  Android Developers
     
  7. jogimuc, 22.07.2018 #7
    jogimuc

    jogimuc Android-Hilfe.de Mitglied

    Hat er ja schon und er hat auch berichtet das es geht.
    Indirekt hat es doch mit der Auflösung zu tunen den android hat etwas an dem drawable Format verändert erweitert für neue API Versionen .
     
  8. markus.tullius, 22.07.2018 #8
    markus.tullius

    markus.tullius Android-Lexikon

    Soweit ich sehe steht da nicht: ldpi, mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi, nodpi, tvdpi. Der Ordner drawable hat einfach nur mit der Grafik zu tun.

    v24 heißt einfach ab API Level 24. Und wurde eingeführt, weil zum Beispiel die Style-Theme sich mit der Zeit geändert haben (z.B. Material Design)-

    Und sonst hätte ich es oben nicht geschrieben, und es hat ja wohl auch funktioniert. ;)
     
    DagobertDokate und deek haben sich bedankt.
Du betrachtest das Thema "shape fuktioniert auf Hardware nicht" im Forum "Android App Entwicklung",
  1. Android-Hilfe.de verwendet Cookies um Inhalte zu personalisieren und dir den bestmöglichen Service zu gewährleisten. Wenn du auf der Seite weitersurfst stimmst du der Cookie-Nutzung zu.  Ich stimme zu.