2017-08-19 4 views
-1

Ich bekomme diesen Fehler, wenn ich versuche, meine App auf meinem alten physischen Gerät und Emulator (beide API 19) zu starten. Wenn ich jedoch auf meinem physischen Hauptgerät (API 23) und Emulatoren von API 22 und höher laufe, erhalte ich keinen Fehler. HierFehler: android.view.InflateException: Binär XML-Datei Zeile

ist der gesamte Stack-Trace:

08-19 19:19:54.615 2799-2799/com.nicoqueijo.android.baseconverter E/AndroidRuntime: FATAL EXCEPTION: main 
                        Process: com.nicoqueijo.android.baseconverter, PID: 2799 
                        java.lang.RuntimeException: Unable to start activity ComponentInfo{com.nicoqueijo.android.baseconverter/com.nicoqueijo.android.baseconverter.activity.MainActivity}: android.view.InflateException: Binary XML file line #78: Error inflating class SeekBar 
                         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195) 
                         at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245) 
                         at android.app.ActivityThread.access$800(ActivityThread.java:135) 
                         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 
                         at android.os.Handler.dispatchMessage(Handler.java:102) 
                         at android.os.Looper.loop(Looper.java:136) 
                         at android.app.ActivityThread.main(ActivityThread.java:5017) 
                         at java.lang.reflect.Method.invokeNative(Native Method) 
                         at java.lang.reflect.Method.invoke(Method.java:515) 
                         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 
                         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 
                         at dalvik.system.NativeStart.main(Native Method) 
                        Caused by: android.view.InflateException: Binary XML file line #78: Error inflating class SeekBar 
                         at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:714) 
                         at android.view.LayoutInflater.rInflate(LayoutInflater.java:756) 
                         at android.view.LayoutInflater.rInflate(LayoutInflater.java:759) 
                         at android.view.LayoutInflater.rInflate(LayoutInflater.java:759) 
                         at android.view.LayoutInflater.rInflate(LayoutInflater.java:759) 
                         at android.view.LayoutInflater.inflate(LayoutInflater.java:492) 
                         at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
                         at android.view.LayoutInflater.inflate(LayoutInflater.java:353) 
                         at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:292) 
                         at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 
                         at com.nicoqueijo.android.baseconverter.activity.MainActivity.onCreate(MainActivity.java:145) 
                         at android.app.Activity.performCreate(Activity.java:5231) 
                         at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
                         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159) 
                         at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)  
                         at android.app.ActivityThread.access$800(ActivityThread.java:135)  
                         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)  
                         at android.os.Handler.dispatchMessage(Handler.java:102)  
                         at android.os.Looper.loop(Looper.java:136)  
                         at android.app.ActivityThread.main(ActivityThread.java:5017)  
                         at java.lang.reflect.Method.invokeNative(Native Method)  
                         at java.lang.reflect.Method.invoke(Method.java:515)  
                         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)  
                         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)  
                         at dalvik.system.NativeStart.main(Native Method)  
                        Caused by: android.content.res.Resources$NotFoundException: File res/drawable/custom_thumb.xml from drawable resource ID #0x7f020055 
                         at android.content.res.Resources.loadDrawable(Resources.java:2101) 
                         at android.content.res.TypedArray.getDrawable(TypedArray.java:602) 
                         at android.widget.AbsSeekBar.<init>(AbsSeekBar.java:73) 
                         at android.widget.SeekBar.<init>(SeekBar.java:83) 
                         at android.support.v7.widget.AppCompatSeekBar.<init>(AppCompatSeekBar.java:46) 
                         at android.support.v7.widget.AppCompatSeekBar.<init>(AppCompatSeekBar.java:42) 
                         at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:139) 
                         at android.support.v7.app.AppCompatDelegateImplV9.createView(AppCompatDelegateImplV9.java:1029) 
                         at android.support.v7.app.AppCompatDelegateImplV9.onCreateView(AppCompatDelegateImplV9.java:1087) 
                         at android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(LayoutInflaterCompatHC.java:47) 
                         at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685) 
                         at android.view.LayoutInflater.rInflate(LayoutInflater.java:756)  
                         at android.view.LayoutInflater.rInflate(LayoutInflater.java:759)  
                         at android.view.LayoutInflater.rInflate(LayoutInflater.java:759)  
                         at android.view.LayoutInflater.rInflate(LayoutInflater.java:759)  
                         at android.view.LayoutInflater.inflate(LayoutInflater.java:492)  
                         at android.view.LayoutInflater.inflate(LayoutInflater.java:397)  
                         at android.view.LayoutInflater.inflate(LayoutInflater.java:353)  
                         at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:292)  
                         at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)  
                         at com.nicoqueijo.android.baseconverter.activity.MainActivity.onCreate(MainActivity.java:145)  
                         at android.app.Activity.performCreate(Activity.java:5231)  
                         at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)  
                         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)  
                         at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)  
                         at android.app.ActivityThread.access$800(ActivityThread.java:135)  
                         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)  
                         at android.os.Handler.dispatchMessage(Handler.java:102)  
                         at android.os.Looper.loop(Looper.java:136)  
                         at android.app.ActivityThread.main(ActivityThread.java:5017)  
                         at java.lang.reflect.Method.invokeNative(Native Method)  
                         at java.lang.reflect.Method.invoke(Method.java:515)  
                         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)  
                         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)  
                         at dalvik.system.NativeStart.main(Native Method)  
                        Caused by: java.lang.UnsupportedOperationException: Can't convert to color: type=0x2 
                         at android.content.res.TypedArray.getColor(TypedArray.java:327) 
                         at android.graphics.drawable.GradientDrawable.inflate(GradientDrawable.java:970) 
                         at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:937) 
                         at android.graphics.drawable.Drawable.createFromXml(Drawable.java:877) 
                         at android.content.res.Resources.loadDrawable(Resources.java:2097) 
                         at android.content.res.TypedArray.getDrawable(TypedArray.java:602)  
                         at android.widget.AbsSeekBar.<init>(AbsSeekBar.java:73)  
                         at android.widget.SeekBar.<init>(SeekBar.java:83)  
                         at android.support.v7.widget.AppCompatSeekBar.<init>(AppCompatSeekBar.java:46)  
                         at android.support.v7.widget.AppCompatSeekBar.<init>(AppCompatSeekBar.java:42)  
                         at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:139)  
                         at android.support.v7.app.AppCompatDelegateImplV9.createView(AppCompatDelegateImplV9.java:1029)  
                         at android.support.v7.app.AppCompatDelegateImplV9.onCreateView(AppCompatDelegateImplV9.java:1087)  
                         at android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(LayoutInflaterCompatHC.java:47)  
                         at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685)  
                         at android.view.LayoutInflater.rInflate(LayoutInflater.java:756)  
                         at android.view.LayoutInflater.rInflate(LayoutInflater.java:759)  
                         at android.view.LayoutInflater.rInflate(LayoutInflater.java:759)  
                         at android.view.LayoutInflater.rInflate(LayoutInflater.java:759)  
                         at android.view.LayoutInflater.inflate(LayoutInflater.java:492)  
                         at android.view.LayoutInflater.inflate(LayoutInflater.java:397)  
                         at android.view.LayoutInflater.inflate(LayoutInflater.java:353)  
                         at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:292)  
                         at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)  
                         at com.nicoqueijo.android.baseconverter.activity.MainActivity.onCreate(MainActivity.java:145)  
                         at android.app.Activity.performCreate(Activity.java:5231)  
                         at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)  
                         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)  
                         at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)  
                         at android.app.ActivityThread.access$800(ActivityThread.java:135)  
                         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)  
                         at android.os.Handler.dispatchMessage(Handler.java:102)  
                         at android.os.Looper.loop(Looper.java:136)  
                         at android.app.ActivityThread.main(ActivityThread.java:5017)  
                         at java.lang.reflect.Method.invokeNative(Native Method)  
                         at java.lang.reflect.Method.invoke(Method.java:515)  
                         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)  
                         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)  
                         at dalvik.system.NativeStart.main(Native Method)  

Es ist durch die Linie 78 auf meiner Haupttätigkeit xml Layout verursacht wird, welche dieser Code:

<SeekBar 
        android:id="@+id/seekbar_from_controller" 
        style="@style/SeekBarStyle"/> 

Dies geht zurück auf meinen seekbar Stil, ist wie folgt:

<style name="SeekBarStyle"> 
     <item name="android:layout_width">match_parent</item> 
     <item name="android:layout_height">wrap_content</item> 
     <item name="android:layout_marginLeft">5dp</item> 
     <item name="android:layout_marginRight">15dp</item> 
     <item name="android:max">14</item> 
     <item name="android:paddingBottom">5dp</item> 
     <item name="android:paddingTop">5dp</item> 
     <item name="android:progress">1</item> 
     <item name="android:thumb">@drawable/custom_thumb</item> 
    </style> 

Aber dann geht das zurück auf meine custom_thumb.xml, die diese co ist de:

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
     android:shape="oval"> 
    <size 
     android:width="15dp" 
     android:height="15dp"/> 
    <solid android:color="?colorPrimary"/> 
</shape> 

Ich weiß, das Problem ist, dass ich verwende, weil ich schon versucht, diese zu entfernen und eine hartcodierte Farbe setzen und dann, wenn ich es laufen sie verursacht einen Fehler wieder, aber auf einem anderen Element „colorPrimary?“ welches die Farbe als "? colorPrimary" hat.

Gibt es eine Möglichkeit, dies zu beheben, ohne hartcodierte Farben zu verwenden? Ich muss "? ColorPrimary" verwenden, da ich Optionen zum Ändern des Themas der App habe und dadurch die Primär-, Akzent- und PrimaryDark-Farben ändern.

+0

Können Sie bitte Ihre Frage bearbeiten und die Vertiefungen korrekt? Ich spreche vor allem über den ersten Code-Abschnitt: Der Stack-Trace ist nicht lesbar. –

Antwort

0

Verwendung

<solid android:color="@color/colorPrimary"/> 
+0

Das wird nicht funktionieren, weil ich verschiedene Farben als primäre verwendet habe. Was ich tun musste, ist eine doppelte Layout-Datei zu erstellen, aber ohne "colorPrimary" in den Stilen zu verwenden und APIs niedriger als oder gleich 19 Call setzen das Layout darauf. if (SystemInfo.isRunningLollipopOrHigher()) { setContentView (R.layout.activity_main); } sonst { setContentView (R.layout.activity_main_static_theme); } – Nico

Verwandte Themen