【发布时间】:2015-12-19 12:22:24
【问题描述】:
在 Lollipop 之前的 android 版本中,我在尝试实例化片段时不断收到 VerifyError,从而导致应用程序崩溃。有人可以向我解释这个错误的原因吗?
12-19 17:46:52.510 28238-28238/com.greeblu.tootl2 E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.greeblu.tootl2, PID: 28238
java.lang.VerifyError: com/greeblu/tootl2/fragment/ProfileGridFragment
at com.greeblu.tootl2.activity.ProfileActivity.launchGridFragment(ProfileActivity.java:289)
at com.greeblu.tootl2.fragment.ProfileOverlayFragment$3.onClick(ProfileOverlayFragment.java:123)
at android.view.View.performClick(View.java:4438)
at android.view.View$PerformClick.run(View.java:18439)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5034)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:611)
at dalvik.system.NativeStart.main(Native Method)
这就是我为旧 android 版本调用片段的方式:
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.profileContainer, new ProfileGridFragment(),fragmentTag); //Replaces the Fragment C previously in the right_container with a new Fragment B
ft.commit();
编辑: onClick 调用的代码如下。它是从同一活动中的另一个片段调用的
picContainer.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
((ProfileActivity) getActivity()).launchGridFragment(overlayDp, "all");
}
});
【问题讨论】:
-
那个fragmentTag是什么???
-
粘贴你的gradle。尝试 build clean 和 gradle clean。
-
能不能把
onClick()的代码发一下; -
@Android fragmentTag 是一个静态字符串(“Tag”)
标签: java android android-fragments verifyerror