2016-03-12 2 views
-1

У меня очень непонятное время, пытаясь понять эту проблему. У меня есть два отдельных приложения, оба из которых имеют одинаковые стили xml, ночной цвет, а не ночные цветные файлы. Оба они имеют тонированные векторные чертежи в качестве доступных. Дело в том, что один падает, а другой нет. Следует также отметить, что приложение только сбой на Android 5.0. Кажется, что все работает над работой и kitkat.DayNightTheme работает только с одним приложением, но не с другим?

Вот отчет аварии:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.nick.mowen.materialdesignplugin/com.nick.mowen.materialdesign.ui.MainActivity}: java.lang.UnsupportedOperationException: Can't convert to color: type=0x1 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 
     at android.app.ActivityThread.access$800(ActivityThread.java:151) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
     at android.os.Handler.dispatchMessage(Handler.java:102) 
     at android.os.Looper.loop(Looper.java:135) 
     at android.app.ActivityThread.main(ActivityThread.java:5254) 
     at java.lang.reflect.Method.invoke(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:372) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 
Caused by: java.lang.UnsupportedOperationException: Can't convert to color: type=0x1 
     at android.content.res.TypedArray.getColor(TypedArray.java:404) 
     at android.app.Activity.onApplyThemeResource(Activity.java:3683) 
     at android.view.ContextThemeWrapper.initializeTheme(ContextThemeWrapper.java:140) 
     at android.view.ContextThemeWrapper.setTheme(ContextThemeWrapper.java:85) 
     at android.support.v7.app.AppCompatActivity.setTheme(AppCompatActivity.java:89) 
     at android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.java:81) 
     at com.nick.mowen.materialdesign.ui.MainActivity.onCreate(MainActivity.java:85) 
     at android.app.Activity.performCreate(Activity.java:5990) 
     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)  
     at android.app.ActivityThread.access$800(ActivityThread.java:151)  
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)  
     at android.os.Handler.dispatchMessage(Handler.java:102)  
     at android.os.Looper.loop(Looper.java:135)  
     at android.app.ActivityThread.main(ActivityThread.java:5254)  
     at java.lang.reflect.Method.invoke(Native Method)  
     at java.lang.reflect.Method.invoke(Method.java:372)  
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)  
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 

Вот ночь цвета XML, которая вызывает сбои - интересно, прямо сейчас цвет нав ящик вызывает сбои при установленных на # 212121, но когда он установлен в @android: цвет/черный он работает отлично:

<resources>> 

    <color name="color_primary_dark">#212121</color> 
    <color name="accent_primary">@color/accent_material_dark</color> 
    <color name="back_primary">#FF303030</color> 
    <color name="list_selected_primary">@color/accent_material_dark_selected</color> 
    <color name="text_third">@android:color/tertiary_text_dark</color> 
    <color name="text_second">@android:color/secondary_text_dark</color> 
    <color name="text_main">@android:color/primary_text_dark</color> 
    <color name="drawable_tint">@null</color> 
    <color name="dialog_back">#424242</color> 
    <color name="action_primary">#212121</color> 
    <color name="inverse_text_third">@android:color/tertiary_text_light</color> 
    <color name="inverse_text_second">@android:color/secondary_text_light</color> 
    <color name="inverse_text_main">@android:color/primary_text_light</color> 
    <bool name="dark_status">false</bool> 
    <color name="navigation_primary">#212121</color> 

</resources> 
+0

Есть идеи, что атрибут, который имеет в виду? – JoxTraex

+0

Есть ли способ проверить, какой из них? –

+0

Проверьте мой ответ. – JoxTraex

ответ

2

Я посмотрел на 5.0 код AOSP (в http://androidxref.com/5.0.0_r2/xref/frameworks/base/core/java/android/app/Activity.java)

и это метод является вызов изд:

@Override 
protected void onApplyThemeResource(Resources.Theme theme, int resid, 
     boolean first) { 
    if (mParent == null) { 
     super.onApplyThemeResource(theme, resid, first); 
    } else { 
     try { 
      theme.setTo(mParent.getTheme()); 
     } catch (Exception e) { 
      // Empty 
     } 
     theme.applyStyle(resid, false); 
    } 

    // Get the primary color and update the TaskDescription for this activity 
    if (theme != null) { 
     TypedArray a = theme.obtainStyledAttributes(com.android.internal.R.styleable.Theme); 
     int colorPrimary = a.getColor(com.android.internal.R.styleable.Theme_colorPrimary, 0); 
     a.recycle(); 
     if (colorPrimary != 0) { 
      ActivityManager.TaskDescription v = new ActivityManager.TaskDescription(null, null, 
        colorPrimary); 
      setTaskDescription(v); 
     } 
    } 
} 

Линия, которая разваливается является getColor. Кажется, что цвет, который вы указали для вашей конкретной темы, не может быть разрешен для цвета. Проверьте свои ресурсы и подтвердить, что он может быть решен к цвету через API (TypedArray).getColor():

Обратите внимание, что это говорит об ошибке:

UnsupportedOperationException if the attribute is defined but is not an integer color or color state list.

+0

Спасибо за это! Все цвета - это шестнадцатеричные коды, кроме того, что является @null для темной темы. –

+0

Попытка добавления ссылки на цвет android только для отладки. Старайтесь, если getColor не сможет его решить, он сработает. – JoxTraex

+0

Хорошо, я сделал это и получил их всех до такой степени, что они работают. Затем я удалил первый, и именно там я установил цвет третичного текста: # 66000000 и # 80FFFFFF, который отображается как допустимый цвет в предварительном просмотре, если только 5.0 не может это обработать? –

Смежные вопросы