J'ai implémenté la conception matérielle dans mon application et elle fonctionne parfaitement sous <Android 5, mais lorsque j'essaie de fonctionner sous Android 5.0 ou version ultérieure, les éléments suivants apparaissent dans mon journal.
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
Et voici mes styles:
<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>
Si quelqu'un pouvait me donner des conseils, ce serait un grand merci.
Vous ne pouvez pas utiliser alfa en couleur primaire. La couleur primaire doit être opaque.
Changement:
<item name="colorPrimaryDark">#4DFF9800</item>
<item name="colorPrimary">#4D607D8B</item>
À
<item name="colorPrimaryDark">#FF9800</item>
<item name="colorPrimary">#607D8B</item>
pour api 21 dans le fichier res/values-v21/style.xml
@ Konrad Krakowiak a raison.
Vous pouvez voir le code source de 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;
}
La solution simple au problème consiste à supprimer l’opaque appliquée à la couleur primaire dans colors.xml.
Quand opaque est appliqué à une couleur primaire, le code de couleur ressemble à ceci "# aca688ff", où il doit être ex: "# F50057" (code alphanumérique à 6 lettres sans opaque).
J'espère que la solution ci-dessus vous aidera à résoudre le problème.