android-issue-reporter icon indicating copy to clipboard operation
android-issue-reporter copied to clipboard

App crashes on Pre-Lollipop devices

Open adithya321 opened this issue 7 years ago • 11 comments

Caused by: android.view.InflateException: Binary XML file line #88: Error inflating class ImageButton

<ImageButton
                android:id="@+id/air_buttonDeviceInfo"
                android:tint="?android:textColorPrimary"/>
E/AndroidRuntime: FATAL EXCEPTION: main
                                                 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.heinrichreimersoftware.androidissuereporter.example/com.heinrichreimersoftware.androidissuereporter.example.ExampleReporterActivity}: android.view.InflateException: Binary XML file line #88: Error inflating class ImageButton
                                                     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
                                                     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
                                                     at android.app.ActivityThread.access$600(ActivityThread.java:130)
                                                     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
                                                     at android.os.Handler.dispatchMessage(Handler.java:99)
                                                     at android.os.Looper.loop(Looper.java:137)
                                                     at android.app.ActivityThread.main(ActivityThread.java:4745)
                                                     at java.lang.reflect.Method.invokeNative(Native Method)
                                                     at java.lang.reflect.Method.invoke(Method.java:511)
                                                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
                                                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
                                                     at dalvik.system.NativeStart.main(Native Method)
                                                  Caused by: android.view.InflateException: Binary XML file line #88: Error inflating class ImageButton
                                                     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
                                                     at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
                                                     at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
                                                     at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
                                                     at android.view.LayoutInflater.parseInclude(LayoutInflater.java:830)
                                                     at android.view.LayoutInflater.rInflate(LayoutInflater.java:736)
                                                     at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
                                                     at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
                                                     at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
                                                     at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
                                                     at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
                                                     at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
                                                     at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:292)
                                                     at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
                                                     at com.heinrichreimersoftware.androidissuereporter.IssueReporterActivity.onCreate(IssueReporterActivity.java:122)
                                                     at com.heinrichreimersoftware.androidissuereporter.example.ExampleReporterActivity.onCreate(ExampleReporterActivity.java:37)
                                                     at android.app.Activity.performCreate(Activity.java:5008)
                                                     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
                                                     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
                                                     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) 
                                                     at android.app.ActivityThread.access$600(ActivityThread.java:130) 
                                                     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) 
                                                     at android.os.Handler.dispatchMessage(Handler.java:99) 
                                                     at android.os.Looper.loop(Looper.java:137) 
                                                     at android.app.ActivityThread.main(ActivityThread.java:4745) 
                                                     at java.lang.reflect.Method.invokeNative(Native Method) 
                                                     at java.lang.reflect.Method.invoke(Method.java:511) 
                                                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
                                                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
                                                     at dalvik.system.NativeStart.main(Native Method) 
                                                  Caused by: java.lang.NumberFormatException: Invalid int: "res/color/abc_primary_text_material_light.xml"
                                                     at java.lang.Integer.invalidInt(Integer.java:138)
                                                     at java.lang.Integer.parse(Integer.java:375)
                                                     at java.lang.Integer.parseInt(Integer.java:366)
                                                     at com.android.internal.util.XmlUtils.convertValueToInt(XmlUtils.java:123)
                                                     at android.content.res.TypedArray.getInt(TypedArray.java:254)
                                                     at android.widget.ImageView.<init>(ImageView.java:146)
                                                     at android.widget.ImageButton.<init>(ImageButton.java:87)
                                                     at android.support.v7.widget.AppCompatImageButton.<init>(AppCompatImageButton.java:60)
                                                     at android.support.v7.widget.AppCompatImageButton.<init>(AppCompatImageButton.java:56)
                                                     at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:118)
                                                     at android.support.v7.app.AppCompatDelegateImplV9.createView(AppCompatDelegateImplV9.java:1029)
                                                     at android.support.v7.app.AppCompatDelegateImplV9.onCreateView(AppCompatDelegateImplV9.java:1087)
                                                     at android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(LayoutInflaterCompatHC.java:47)
                                                     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:675)
                                                     at android.view.LayoutInflater.rInflate(LayoutInflater.java:746) 
                                                     at android.view.LayoutInflater.rInflate(LayoutInflater.java:749) 
                                                     at android.view.LayoutInflater.rInflate(LayoutInflater.java:749) 
                                                     at android.view.LayoutInflater.parseInclude(LayoutInflater.java:830) 
                                                     at android.view.LayoutInflater.rInflate(LayoutInflater.java:736) 
                                                     at android.view.LayoutInflater.rInflate(LayoutInflater.java:749) 
                                                     at android.view.LayoutInflater.rInflate(LayoutInflater.java:749) 
                                                     at android.view.LayoutInflater.rInflate(LayoutInflater.java:749) 
                                                     at android.view.LayoutInflater.inflate(LayoutInflater.java:489) 
                                                     at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
                                                     at android.view.LayoutInflater.inflate(LayoutInflater.java:352) 
                                                     at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:292) 
                                                     at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 
                                                     at com.heinrichreimersoftware.androidissuereporter.IssueReporterActivity.onCreate(IssueReporterActivity.java:122) 
                                                     at com.heinrichreimersoftware.androidissuereporter.example.ExampleReporterActivity.onCreate(ExampleReporterActivity.java:37) 
                                                     at android.app.Activity.performCreate(Activity.java:5008) 
                                                     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079) 
                                                     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023) 
                                                     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) 
                                                     at android.app.ActivityThread.access$600(ActivityThread.java:130) 
                                                     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) 
                                                     at android.os.Handler.dispatchMessage(Handler.java:99) 
                                                     at android.os.Looper.loop(Looper.java:137) 
                                                     at android.app.ActivityThread.main(ActivityThread.java:4745) 
                                                     at java.lang.reflect.Method.invokeNative(Native Method) 
                                                     at java.lang.reflect.Method.invoke(Method.java:511) 
                                                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
                                                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
                                                     at dalvik.system.NativeStart.main(Native Method) 

adithya321 avatar May 26 '17 11:05 adithya321

I think this is beacuse of the app compat in app gradle is 25.+. But for support in pre lolipop devices the version should be 21.0.+

shashvat-kedia avatar Oct 02 '17 11:10 shashvat-kedia

Hi @sd1998

If you are still looking for a solution for this issue, you can solve it by defining android:textColorPrimary in your colors file.

(Something like <item name="android:textColorPrimary">@color/md_white_1000</item>)

Hope it helps.

aminecmi avatar Oct 23 '17 15:10 aminecmi

@aminecmi Thanks for the help

shashvat-kedia avatar Oct 23 '17 15:10 shashvat-kedia

Is there any docs for android:textColorPrimary saying it isn't available pre Lollipop?

janheinrichmerker avatar Oct 31 '17 20:10 janheinrichmerker

I think that it's related to Material Design, and so only available on newer Android versions.

Adding that single line fixes the crashes.

aminecmi avatar Oct 31 '17 20:10 aminecmi

No, technically android:textColorPrimary existed since the early beginnings of Android in SDK version 1: https://developer.android.com/reference/android/R.attr.html#textColorPrimary So theoretically the attribute is there...

janheinrichmerker avatar Oct 31 '17 21:10 janheinrichmerker

Well, that's what was causing the crash for the ImageButton.

aminecmi avatar Oct 31 '17 21:10 aminecmi

Then we should try to fix it on a library level.

janheinrichmerker avatar Oct 31 '17 21:10 janheinrichmerker

@aminecmi would you mind adding a default android:textColorPrimary for the themes.xml for android versions below SDK 21 and updating your PR? This'll need to copy the existing themes.xml into the values-v21 folder and then editing the one in values.

janheinrichmerker avatar Oct 31 '17 21:10 janheinrichmerker

@heinrichreimer it's done.

aminecmi avatar Oct 31 '17 21:10 aminecmi

This should be fixed in #101

aminecmi avatar Nov 07 '17 14:11 aminecmi

See #101

janheinrichmerker avatar Oct 11 '22 15:10 janheinrichmerker