Android UnsupportedOperationException: impossible de convertir de couleur: type=0x2

C'est la fermeture inopinée de l'Android Market:

android.view.InflateException: Binary XML file line #8: Error inflating class <unknown>
at android.view.LayoutInflater.createView(LayoutInflater.java:596)
at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:644)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:669)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:724)
at android.view.LayoutInflater.inflate(LayoutInflater.java:479)
at android.view.LayoutInflater.inflate(LayoutInflater.java:391)
at android.view.LayoutInflater.inflate(LayoutInflater.java:347)
at com.designfuture.music.ui.dialog.MXMDialog.<init>(MXMDialog.java:73)
at com.designfuture.music.ui.dialog.MXMDialog.<init>(MXMDialog.java:58)
at com.designfuture.music.model.MXMStoreBuy.getBuyDialog(MXMStoreBuy.java:70)
at com.designfuture.music.ui.fragment.plbl.XLBLFragment$ViewHolder$3.onClick(XLBLFragment.java:290)
at android.view.View.performClick(View.java:3110)
at android.view.View$PerformClick.run(View.java:11934)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:132)
at android.app.ActivityThread.main(ActivityThread.java:4123)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:491)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.constructNative(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:416)
at android.view.LayoutInflater.createView(LayoutInflater.java:576)
... 22 more
Caused by: java.lang.UnsupportedOperationException: Can't convert to color: type=0x2
at android.content.res.TypedArray.getColor(TypedArray.java:326)
at android.widget.TextView.<init>(TextView.java:422)
at android.widget.TextView.<init>(TextView.java:364)
... 25 more

Donc, pour ce que je peux voir que le problème est dans

at com.designfuture.music.ui.dialog.MXMDialog.<init>(MXMDialog.java:73)

Où j'ai cette ligne de code:

mHolder = new ViewHolder((ViewGroup) inflater.inflate(R.layout.dialog_mxm, null));

C'est la fonction complète

public MXMDialog(Context context, String title) {
super( context, R.style.Dialog_MXM );
//getWindow()
LayoutParams lp= getWindow().getAttributes();
lp.gravity = Gravity.CENTER;
lp.dimAmount = 0.5f;
lp.flags = LayoutParams.FLAG_NOT_TOUCH_MODAL;
if(inflater == null)
inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mHolder = new ViewHolder((ViewGroup) inflater.inflate(R.layout.dialog_mxm, null));
super.setContentView(mHolder.root);
if(title != null)
setTitle(title);
}

C'est le contenu de la R. layout.dialog_mxm

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@android:id/title"
android:background="@drawable/tabwidget"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dp"
android:gravity="left"
android:paddingLeft="10dp"
android:textStyle="bold"
android:textColor="@color/orange_mxm"
style="@android:style/TextAppearance.Large"/>
<FrameLayout
android:id="@android:id/content"
android:background="@drawable/tabwidget"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>

Je pense que le problème est dans le TextView.
Le style de cette textview ne peut pas être un problème parce que vient directement à partir d'Android donc je ne pense pas que ce sera un problème.

Android:textColor="@couleur/orange_mxm" est-ce dans mon colors.xml

<color name="orange_mxm">#FFff6500</color>

C'est le Dialogue.MXM style

<!-- DIALOG -->
<style name="Dialog.MXM" parent="@android:style/Theme.DeviceDefault.Dialog">
<item name="android:layout_width">wrap_content</item>
<item name="android:background">@android:color/transparent</item>
<item name="android:windowAnimationStyle">@style/Dialog.MXM.FadeAnimation</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowNoTitle">true</item>
<item name="android:gravity">center</item>
</style>
<style name="Dialog.MXM.FadeAnimation">
<item name="android:windowEnterAnimation">@android:anim/fade_in</item>
<item name="android:windowExitAnimation">@android:anim/fade_out</item>
</style>

Et je ne pense pas que c'est un non-standard de couleur...

Où est le problème? Comment puis-je résoudre ce problème?

  • Postez votre style xml pour boîte de Dialogue.MXM.
  • Quel est votre minSdkVersion?
  • Mon minSdkVersion est de 7 (android 2.1)
InformationsquelleAutor StErMi | 2012-03-07