frankiesardo / icepick

Android Instance State made easy
Eclipse Public License 1.0
3.75k stars 208 forks source link

VerifyError on rooted devices #86

Open timothyjc opened 8 years ago

timothyjc commented 8 years ago

I get a bunch of VerifyError crashes in my app from rooted users:

Fatal Exception: java.lang.VerifyError: Rejecting class icepick.Injector$Helper because it failed compile-time verification (declaration of 'icepick.Injector$Helper' appears in /data/app/com.citc.asap-1/base.apk:classes40.dex) at com.citc.asap.fragments.QuickSettingsFragment$$Icepick.(QuickSettingsFragment$$Icepick.java:18) at java.lang.Class.classForName(Class.java) at java.lang.Class.forName(Class.java:324) at java.lang.Class.forName(Class.java:285) at icepick.Icepick.getInjector(Icepick.java:42) at icepick.Icepick.safeGet(Icepick.java:56) at icepick.Icepick.restoreInstanceState(Icepick.java:72) at com.citc.asap.fragments.QuickSettingsFragment.onCreate(QuickSettingsFragment.java:91) at android.support.v4.app.Fragment.performCreate(Fragment.java:2062) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1051) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1264) at android.support.v4.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2436) at android.support.v4.app.FragmentController.onCreateView(FragmentController.java:120) at android.support.v4.app.FragmentActivity.dispatchFragmentsOnCreateView(FragmentActivity.java:374) at android.support.v4.app.BaseFragmentActivityHoneycomb.onCreateView(BaseFragmentActivityHoneycomb.java:33) at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:75) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:754) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) at android.view.LayoutInflater.rInflate(LayoutInflater.java:835) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) at android.view.LayoutInflater.rInflate(LayoutInflater.java:838) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) at android.view.LayoutInflater.inflate(LayoutInflater.java:515) at de.robv.android.xposed.XposedBridge.invokeOriginalMethodNative(XposedBridge.java) at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:740) at android.view.LayoutInflater.inflate() at android.view.LayoutInflater.inflate(LayoutInflater.java:423) at android.view.LayoutInflater.inflate(LayoutInflater.java:374) at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280) at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) at com.citc.asap.activities.HomeActivity.onCreate(HomeActivity.java:190) at android.app.Activity.performCreate(Activity.java:6251) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2403) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2510) at android.app.ActivityThread.-wrap11(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1363) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5463) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:132)

The crashing line is

Icepick.restoreInstanceState(this, savedInstanceState);

From here:

@Override public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Icepick.restoreInstanceState(this, savedInstanceState);
  }
frankiesardo commented 7 years ago

Can you provide the generated QuickSettingsFragment$$Icepick.java code?