App on release crashes, while on debug doesn't

12,885

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:

https://medium.com/@aanshul16/android-app-crashes-in-release-mode-but-working-perfectly-in-debug-c051cc83a019

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.

Share:
12,885

Related videos on Youtube

Sergi Juanola
Author by

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, 2022

Comments

  • Sergi Juanola
    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
      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
    Sergi Juanola about 10 years
    Exactly! Thanks, let me accept your answer as valid