This is the crashlog from 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
So for what I can see the problem is in
at com.designfuture.music.ui.dialog.MXMDialog.<init>(MXMDialog.java:73)
Where I have this line of code:
mHolder = new ViewHolder((ViewGroup) inflater.inflate(R.layout.dialog_mxm, null));
This is the complete function
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);
}
This is the content of the 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>
I think that the problem is in the TextView. The style of that textview cannot be a problem because comes directly from Android so I don't think this will be a problem.
The android:textColor="@color/orange_mxm" is this in my colors.xml
<color name="orange_mxm">#FFff6500</color>
This is the Dialog.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>
And I don't think this is a so not-standard color...
Where's the problem? How can I solve this?
Does the Dialog.MXM style vary with the API level supported by the device (e.g. using a values-v14/ directory) or is it used for all devices?
The DeviceDefault theme family (including Theme.DeviceDefault.Dialog) was added in API 14 (Android 4.0, ICS) and will not be present on older devices. This means that on those devices where that theme cannot be found, Dialog.MXM in effect has a null parent theme. Themes expect a number of attributes to have defined values, and in this case your theme will be missing many required ones. Some devices may deal with this more gracefully than others.
One solution is to define a common base theme that inherits from a different parent based on which platform version the device is running. An example:
res/values/themes.xml:
[...]
<!-- Use the legacy dialog theme as a base on older devices -->
<style name="Dialog.Base" parent="@android:style/Theme.Dialog" />
<!-- Dialog.Base varies with platform version -->
<style name="Dialog.MXM" parent="@style/Dialog.Base">
<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>
[...]
res/values-v11/themes.xml:
[...]
<!-- Use Holo dialogs as the base on Honeycomb -->
<style name="Dialog.Base" parent="@android:style/Theme.Holo.Dialog" />
[...]
res/values-v14/themes.xml:
[...]
<!-- Use DeviceDefault dialogs as the base on ICS and newer -->
<style name="Dialog.Base" parent="@android:style/Theme.DeviceDefault.Dialog" />
[...]
I was getting this error in one of my modules. Here's the issue description :
there's a color item for 'white' color defined in colors.xml of main app module.
<color name="white">#ffffff</color>
And in one of the layouts in my module, I'm referring to the white color as :
<TextView
android:textColor="@color/white"
.../>
The mistake I did was I have defined the item color 'white' again in my module's color.xml as
**<color name="white">@color/white</color>**
Instead It should have been like
<color name="white">#ffffff</color>.
That was my issue.
Thanks, Rakesh
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With