App on release crashes, while on debug doesn't
Solution 1
Looks like Proguard is removing a constructor from one of your classes. Be sure to add the Proguard config as specified in the manual. If this is not added, Proguard will remove all unused code, which includes things like Activity constructors.
Solution 2
I just ran into this problem and running Build > Clean Project before generating a new signed APK fixed it.
Solution 3
The similar issue I also found and mentioned about it in:
You can check first just by enabling minifyEnable to true in your debug flavour, if issue get reproduced then definitely it is because of proguard.
Related videos on Youtube
Sergi Juanola
Interface analyst and developer using a wide variety of languages. Experienced Android, JS and PHP developer. I can both help you with your website and your app.
Updated on June 25, 2022Comments
-
Sergi Juanola almost 2 years
I'm developing an app using Android Studio, and when I switched from debug to release build variant, it began to crash. While on debug it doesn't happen anything at all. The real problem is that I can't find where is the true error, as every reference is renamed.
Have you faced an error like this, that has happened only on release?
The printed stack is this:
04-11 08:28:42.756 5997-5997/com.korcholis.clothio E/ActivityThread﹕ Failed to inflate android.view.InflateException: Binary XML file line #10: Error inflating class fragment at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713) at android.view.LayoutInflater.rInflate(LayoutInflater.java:755) at android.view.LayoutInflater.inflate(LayoutInflater.java:492) at android.view.LayoutInflater.inflate(LayoutInflater.java:397) at android.view.LayoutInflater.inflate(LayoutInflater.java:353) at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:267) at android.app.Activity.setContentView(Activity.java:1906) at android.support.v7.a.g.a(Unknown Source) at android.support.v7.a.n.a(Unknown Source) at android.support.v7.a.g.setContentView(Unknown Source) at com.korcholis.clothio.SampleListActivity.onCreate(Unknown Source) at android.app.Activity.performCreate(Activity.java:5207) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2309) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2405) at android.app.ActivityThread.access$600(ActivityThread.java:156) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1272) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5303) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:525) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.IllegalStateException: Could not find constructor that hast just a (Context) argument for helper class class com.korcholis.clothio.b.c at com.a.a.a.a.a.c(Unknown Source) at com.a.a.a.a.a.b(Unknown Source) at com.a.a.a.a.a.a(Unknown Source) at com.korcholis.clothio.fragments.SampleListFragment.a(Unknown Source) at android.support.v4.app.Fragment.i(Unknown Source) at android.support.v4.app.ae.a(Unknown Source) at android.support.v4.app.ae.b(Unknown Source) at android.support.v4.app.ae.a(Unknown Source) at android.support.v4.app.w.onCreateView(Unknown Source) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685) at android.view.LayoutInflater.rInflate(LayoutInflater.java:755) at android.view.LayoutInflater.inflate(LayoutInflater.java:492) at android.view.LayoutInflater.inflate(LayoutInflater.java:397) at android.view.LayoutInflater.inflate(LayoutInflater.java:353) at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:267) at android.app.Activity.setContentView(Activity.java:1906) at android.support.v7.a.g.a(Unknown Source) at android.support.v7.a.n.a(Unknown Source) at android.support.v7.a.g.setContentView(Unknown Source) at com.korcholis.clothio.SampleListActivity.onCreate(Unknown Source) at android.app.Activity.performCreate(Activity.java:5207) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2309) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2405) at android.app.ActivityThread.access$600(ActivityThread.java:156) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1272) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5303) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:525) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.NoSuchMethodException: <init> [class android.content.Context] at java.lang.Class.getConstructorOrMethod(Class.java:423) at java.lang.Class.getConstructor(Class.java:397) at com.a.a.a.a.a.c(Unknown Source) at com.a.a.a.a.a.b(Unknown Source) at com.a.a.a.a.a.a(Unknown Source) at com.korcholis.clothio.fragments.SampleListFragment.a(Unknown Source) at android.support.v4.app.Fragment.i(Unknown Source) at android.support.v4.app.ae.a(Unknown Source) at android.support.v4.app.ae.b(Unknown Source) at android.support.v4.app.ae.a(Unknown Source) at android.support.v4.app.w.onCreateView(Unknown Source) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685) at android.view.LayoutInflater.rInflate(LayoutInflater.java:755) at android.view.LayoutInflater.inflate(LayoutInflater.java:492) at android.view.LayoutInflater.inflate(LayoutInflater.java:397) at android.view.LayoutInflater.inflate(LayoutInflater.java:353) at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:267) at android.app.Activity.setContentView(Activity.java:1906) at android.support.v7.a.g.a(Unknown Source) at android.support.v7.a.n.a(Unknown Source) at android.support.v7.a.g.setContentView(Unknown Source) at com.korcholis.clothio.SampleListActivity.onCreate(Unknown Source) at android.app.Activity.performCreate(Activity.java:5207) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2309) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2405) at android.app.ActivityThread.access$600(ActivityThread.java:156) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1272) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5303) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:525) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555) at dalvik.system.NativeStart.main(Native Method) 04-11 08:28:42.756 5997-5997/com.korcholis.clothio D/AndroidRuntime﹕ Shutting down VM 04-11 08:28:42.756 5997-5997/com.korcholis.clothio W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x41902700) 04-11 08:28:42.756 5997-5997/com.korcholis.clothio E/AndroidRuntime﹕ FATAL EXCEPTION: main java.lang.RuntimeException: Unable to start activity ComponentInfo{com.korcholis.clothio/com.korcholis.clothio.SampleListActivity}: android.view.InflateException: Binary XML file line #10: Error inflating class fragment at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2355) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2405) at android.app.ActivityThread.access$600(ActivityThread.java:156) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1272) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5303) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:525) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555) at dalvik.system.NativeStart.main(Native Method) Caused by: android.view.InflateException: Binary XML file line #10: Error inflating class fragment at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713) at android.view.LayoutInflater.rInflate(LayoutInflater.java:755) at android.view.LayoutInflater.inflate(LayoutInflater.java:492) at android.view.LayoutInflater.inflate(LayoutInflater.java:397) at android.view.LayoutInflater.inflate(LayoutInflater.java:353) at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:267) at android.app.Activity.setContentView(Activity.java:1906) at android.support.v7.a.g.a(Unknown Source) at android.support.v7.a.n.a(Unknown Source) at android.support.v7.a.g.setContentView(Unknown Source) at com.korcholis.clothio.SampleListActivity.onCreate(Unknown Source) at android.app.Activity.performCreate(Activity.java:5207) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2309) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2405) at android.app.ActivityThread.access$600(ActivityThread.java:156) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1272) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5303) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:525) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.IllegalStateException: Could not find constructor that hast just a (Context) argument for helper class class com.korcholis.clothio.b.c at com.a.a.a.a.a.c(Unknown Source) at com.a.a.a.a.a.b(Unknown Source) at com.a.a.a.a.a.a(Unknown Source) at com.korcholis.clothio.fragments.SampleListFragment.a(Unknown Source) at android.support.v4.app.Fragment.i(Unknown Source) at android.support.v4.app.ae.a(Unknown Source) at android.support.v4.app.ae.b(Unknown Source) at android.support.v4.app.ae.a(Unknown Source) at android.support.v4.app.w.onCreateView(Unknown Source) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685) at android.view.LayoutInflater.rInflate(LayoutInflater.java:755) at android.view.LayoutInflater.inflate(LayoutInflater.java:492) at android.view.LayoutInflater.inflate(LayoutInflater.java:397) at android.view.LayoutInflater.inflate(LayoutInflater.java:353) at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:267) at android.app.Activity.setContentView(Activity.java:1906) at android.support.v7.a.g.a(Unknown Source) at android.support.v7.a.n.a(Unknown Source) at android.support.v7.a.g.setContentView(Unknown Source) at com.korcholis.clothio.SampleListActivity.onCreate(Unknown Source) at android.app.Activity.performCreate(Activity.java:5207) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2309) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2405) at android.app.ActivityThread.access$600(ActivityThread.java:156) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1272) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5303) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:525) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.NoSuchMethodException: <init> [class android.content.Context] at java.lang.Class.getConstructorOrMethod(Class.java:423) at java.lang.Class.getConstructor(Class.java:397) at com.a.a.a.a.a.c(Unknown Source) at com.a.a.a.a.a.b(Unknown Source) at com.a.a.a.a.a.a(Unknown Source) at com.korcholis.clothio.fragments.SampleListFragment.a(Unknown Source) at android.support.v4.app.Fragment.i(Unknown Source) at android.support.v4.app.ae.a(Unknown Source) at android.support.v4.app.ae.b(Unknown Source) at android.support.v4.app.ae.a(Unknown Source) at android.support.v4.app.w.onCreateView(Unknown Source) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685) at android.view.LayoutInflater.rInflate(LayoutInflater.java:755) at android.view.LayoutInflater.inflate(LayoutInflater.java:492) at android.view.LayoutInflater.inflate(LayoutInflater.java:397) at android.view.LayoutInflater.inflate(LayoutInflater.java:353) at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:267) at android.app.Activity.setContentView(Activity.java:1906) at android.support.v7.a.g.a(Unknown Source) at android.support.v7.a.n.a(Unknown Source) at android.support.v7.a.g.setContentView(Unknown Source) at com.korcholis.clothio.SampleListActivity.onCreate(Unknown Source) at android.app.Activity.performCreate(Activity.java:5207) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2309) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2405) at android.app.ActivityThread.access$600(ActivityThread.java:156) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1272) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5303) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:525) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555) at dalvik.system.NativeStart.main(Native Method)
Thank you guys
EDIT: So as AesSedai101 stated, it was a matter between Proguard and something I am using: Ormlite. So I'll add the tag and a proguard file that worked to me:
-keepattributes Signature -keep class com.korcholis.clothio.data.** { *; } -keep class com.j256.** -keepclassmembers class com.j256.** { *; } -keep enum com.j256.** -keepclassmembers enum com.j256.** { *; } -keep interface com.j256.** -keepclassmembers interface com.j256.** { *; }
Replace
com.korcholis.clothio.data.**
with the package where you store your database models, but don't forget the final.**
-
Sergi Juanola about 10 years@yuvaツ Ok, I'll check for those errors, but how can it be that it just breaks in release mode?
-
-
Sergi Juanola about 10 yearsExactly! Thanks, let me accept your answer as valid