shape fuktioniert auf Hardware nicht

znieh99

znieh99

Fortgeschrittenes Mitglied
12
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)
 
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.
 
  • Danke
Reaktionen: znieh99
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
[doublepost=1532261946,1532261208][/doublepost]Ich habe gerade eine älteren Version der App wo drawable/round_corner.xml nicht im Ordner v24 steht probiert und diese funktioniert. ?
 
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.
 
  • Danke
Reaktionen: znieh99
@jogimuc
Bingo - das war's! Herzlichen Dank
 
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
 
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 .
 
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. ;)
 
  • Danke
Reaktionen: DagobertDokate und deek

Ähnliche Themen

M
  • MikelKatzengreis
Antworten
5
Aufrufe
136
swa00
swa00
B
Antworten
4
Aufrufe
496
bb321
B
SaniMatthias
Antworten
19
Aufrufe
962
swa00
swa00
Zurück
Oben Unten