web-dev-qa-db-ja.com

5.1クラッシュ-TaskDescriptionの原色は不透明でなければなりません

私はアプリにマテリアルデザインを実装し、<Android 5で完全に動作しますが、Android 5.0以降で実行しようとすると、次のようになります。私のlogcatで。

     FATAL EXCEPTION main
 Process com.test.test, PID 3195
 Java.lang.RuntimeException Unable to start activity ComponentInfo{com.test.test/com.test.test.MainActivity} Java.lang.RuntimeException A TaskDescription's primary color should be opaque
    at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java2298)
    at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java2360)
    at Android.app.ActivityThread.access$800(ActivityThread.Java144)
    at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java1278)
    at Android.os.Handler.dispatchMessage(Handler.Java102)
    at Android.os.Looper.loop(Looper.Java135)
    at Android.app.ActivityThread.main(ActivityThread.Java5221)
    at Java.lang.reflect.Method.invoke(Native Method)
    at Java.lang.reflect.Method.invoke(Method.Java372)
    at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java899)
    at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java694)
 Caused by Java.lang.RuntimeException A TaskDescription's primary color should be opaque
    at Android.app.ActivityManager$TaskDescription.<init>(ActivityManager.Java536)
    at Android.app.Activity.onApplyThemeResource(Activity.Java3677)
    at Android.view.ContextThemeWrapper.initializeTheme(ContextThemeWrapper.Java140)
    at Android.view.ContextThemeWrapper.setTheme(ContextThemeWrapper.Java85)
    at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java2244)
    ... 10 more

そして、これが私のスタイルです:

    <resources>

    <!--
        Base application theme, dependent on API level. This theme is replaced
        by AppBaseTheme from res/values-vXX/styles.xml on newer devices.


    -->


    <!-- All customizations that are NOT specific to a particular API-level can go here. -->

    <style name="AppTheme" parent="@style/Theme.AppCompat.NoActionBar">

        <!-- All customizations that are NOT specific to a particular API-level can go here. -->

        <item name="colorPrimaryDark">#4DFF9800</item>
        <item name="colorPrimary">#4D607D8B</item>
    </style>

</resources>

誰もが私に大きな感謝になるいくつかのガイダンスを与えることができれば。

28
Jack

原色ではアルファを使用できません。原色は不透明でなければなりません。

変化する:

<item name="colorPrimaryDark">#4DFF9800</item>
<item name="colorPrimary">#4D607D8B</item>

<item name="colorPrimaryDark">#FF9800</item>
<item name="colorPrimary">#607D8B</item>

res/values-v21/style.xmlファイルのAPI 21

73

この問題の簡単な解決策は、colors.xmlの原色に適用された不透明部分を削除することです

原色に不透明が適用されると、色コードはこの「#aca688ff」のようになります。例:「#F50057」(不透明でない6文字の英数字コード)。

上記の解決策が問題の解決に役立つことを願っています。

@Konrad Krakowiakは正しい。
Android.app.ActivityManager#TaskDescriptionのソースコードを確認できます。

/**
    * Creates the TaskDescription to the specified values.
    *
    * @param label A label and description of the current state of this task.
    * @param icon An icon that represents the current state of this task.
    * @param colorPrimary A color to override the theme's primary color. This color must be opaque.
    */
    public TaskDescription(String label, Bitmap icon, int colorPrimary) {
      if ((colorPrimary != 0) && (Color.alpha(colorPrimary) != 255)) {
        throw new RuntimeException("A TaskDescription's primary color should be opaque");
      }

      mLabel = label;
      mIcon = icon;
      mColorPrimary = colorPrimary;
    }
1
Jimson