Spinner et background style
Bonjour,
j'écris ce poste car je ne trouve aucun poste similaire à mon problème. Cela concerne l'utilisation des spinner quand j'utilise un background de l'application personnalisé.
Ci-dessous le code de mon background utilisé dans style.xml
Code:
1 2 3 4
| <?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/back_motif1"
android:tileMode="repeat" /> |
Une simple image unie répétée pour ne pas étirer. Cela fonctionne correctement que ce soit sur les activités ou fragments. Par contre dés que j'utilise sur une activité ou un fragment un spinner, j'obtiens l'erreur suivante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146
| java.lang.RuntimeException: Unable to start activity ComponentInfo{app.myolympe.com.myolympee/app.myolympe.com.myolympee.main_activities.Params}: android.view.InflateException: Binary XML file line #12: Error inflating class android.widget.Spinner
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: android.view.InflateException: Binary XML file line #12: Error inflating class android.widget.Spinner
at android.view.LayoutInflater.createView(LayoutInflater.java:633)
at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:682)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:378)
at android.app.Activity.setContentView(Activity.java:2145)
at app.myolympe.com.myolympee.main_activities.Params.onCreate(Params.java:18)
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)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.newInstance(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
at android.view.LayoutInflater.createView(LayoutInflater.java:607)
************at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55)
************at android.view.LayoutInflater.onCreateView(LayoutInflater.java:682)
************at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741)
************at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
************at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
************at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
************at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
************at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:378)
************at android.app.Activity.setContentView(Activity.java:2145)
************at app.myolympe.com.myolympee.main_activities.Params.onCreate(Params.java:18)
************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)
Caused by: android.content.res.Resources$NotFoundException: File res/drawable/app_background.xml from color state list resource ID #0x7f020037
at android.content.res.Resources.loadColorStateList(Resources.java:2592)
at android.content.res.TypedArray.getColorStateList(TypedArray.java:427)
at android.graphics.drawable.GradientDrawable.updateGradientDrawableSolid(GradientDrawable.java:1296)
at android.graphics.drawable.GradientDrawable.applyThemeChildElements(GradientDrawable.java:1124)
at android.graphics.drawable.GradientDrawable.applyTheme(GradientDrawable.java:1040)
at android.content.res.Resources.loadDrawable(Resources.java:2373)
at android.content.res.TypedArray.getDrawable(TypedArray.java:749)
at android.widget.PopupWindow.<init>(PopupWindow.java:202)
at android.widget.ListPopupWindow.<init>(ListPopupWindow.java:225)
at android.widget.Spinner$DropdownPopup.<init>(Spinner.java:1063)
at android.widget.Spinner.<init>(Spinner.java:205)
at android.widget.Spinner.<init>(Spinner.java:144)
at android.widget.Spinner.<init>(Spinner.java:129)
************at java.lang.reflect.Constructor.newInstance(Native Method)
************at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
************at android.view.LayoutInflater.createView(LayoutInflater.java:607)
************at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55)
************at android.view.LayoutInflater.onCreateView(LayoutInflater.java:682)
************at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741)
************at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
************at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
************at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
************at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
************at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:378)
************at android.app.Activity.setContentView(Activity.java:2145)
************at app.myolympe.com.myolympee.main_activities.Params.onCreate(Params.java:18)
************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)
Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #2: invalid drawable tag bitmap
at android.content.res.ColorStateList.createFromXmlInner(ColorStateList.java:148)
at android.content.res.ColorStateList.createFromXml(ColorStateList.java:131)
at android.content.res.Resources.loadColorStateList(Resources.java:2588)
************at android.content.res.TypedArray.getColorStateList(TypedArray.java:427)
************at android.graphics.drawable.GradientDrawable.updateGradientDrawableSolid(GradientDrawable.java:1296)
************at android.graphics.drawable.GradientDrawable.applyThemeChildElements(GradientDrawable.java:1124)
************at android.graphics.drawable.GradientDrawable.applyTheme(GradientDrawable.java:1040)
************at android.content.res.Resources.loadDrawable(Resources.java:2373)
************at android.content.res.TypedArray.getDrawable(TypedArray.java:749)
************at android.widget.PopupWindow.<init>(PopupWindow.java:202)
************at android.widget.ListPopupWindow.<init>(ListPopupWindow.java:225)
************at android.widget.Spinner$DropdownPopup.<init>(Spinner.java:1063)
************at android.widget.Spinner.<init>(Spinner.java:205)
************at android.widget.Spinner.<init>(Spinner.java:144)
************at android.widget.Spinner.<init>(Spinner.java:129)
************at java.lang.reflect.Constructor.newInstance(Native Method)
************at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
************at android.view.LayoutInflater.createView(LayoutInflater.java:607)
************at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55)
************at android.view.LayoutInflater.onCreateView(LayoutInflater.java:682)
************at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741)
************at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
************at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
************at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
************at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
************at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:378)
************at android.app.Activity.setContentView(Activity.java:2145)
************at app.myolympe.com.myolympee.main_activities.Params.onCreate(Params.java:18)
************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) |
L'erreur vient de la cohabitation spinner / background de style.xml. Sans appliquer le background le spinner ne donne pas d'erreur et s'affiche correctement. Auriez vous des indications ? Ça m'embête de devoir afficher une page blanche pour mettre un spinner...
Logiciel utilisé : Android Studio 1.1.0
Min sdk : 19
Target : 22
Matériel utilisé pour les tests : Nexus 5 Android version 5.1
Cordialement,
Nicolas