Android 显示片段会引发空指针异常
我有一个android应用程序,针对api级别9和用户应用程序compat库。因此,当我点击一个按钮时,它会显示一个片段,但我不知道为什么这是不可能的,因为它在log cat中向我显示了这个错误:Android 显示片段会引发空指针异常,android,android-fragments,android-support-library,Android,Android Fragments,Android Support Library,我有一个android应用程序,针对api级别9和用户应用程序compat库。因此,当我点击一个按钮时,它会显示一个片段,但我不知道为什么这是不可能的,因为它在log cat中向我显示了这个错误: /AndroidRuntime﹕ FATAL EXCEPTION: main Process: com.myapp, PID: 14290 java.lang.NullPointerException at com.myapp.Main.onClick(Main.java:1204)
/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.myapp, PID: 14290
java.lang.NullPointerException
at com.myapp.Main.onClick(Main.java:1204)
at android.view.View.performClick(View.java:4654)
at android.view.View$PerformClick.run(View.java:19438)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:146)
at android.app.ActivityThread.main(ActivityThread.java:5602)
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:1283)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
at dalvik.system.NativeStart.main(Native Method)
这是我得到的错误:
@Override
public void onClick(View v) {
Log.d("--", "view clicked");
if (adapter != null)
if (!menuShown && adapter.getNextPrayTime() != null) {
switch (v.getId()) {
case R.id.action_share:
View view = findViewById(R.id.main_rl);
shareImage(view, false);
break;
case R.id.action_menu:
Bundle bundle = new Bundle();
bundle.putSerializable(Constants.NEXT_TIME,
adapter.getNextPrayTime());
MenuFragment menuFragment = new MenuFragment();
menuFragment.setArguments(bundle);
Log.e("--",menuFragment+" ex. "+bundle);
//this is line 1204
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.commitAllowingStateLoss();
transaction.setCustomAnimations(
R.anim.slide_in_from_bottom,
R.anim.slide_out_to_bottom,
R.anim.slide_in_from_bottom,
R.anim.slide_out_to_bottom);
transaction.add(android.R.id.content, menuFragment);
transaction.addToBackStack(null);
transaction.commit();
menuShown = true;
break;
}
}
}
有没有人知道为什么会发生这种情况,这样我就可以解决这个问题
谢谢
编辑:此活动扩展了ActionBarActivity
您可以尝试以下操作:
transaction.commitAllowingStateLoss();
您是否构建了jar android-support-v4.jar?单击显示方法。您确定这是第1204行吗
getSupportFragmentManager
无法返回null
@Hulk我在libs文件夹中有android-support-v4.jar,在我的gradle中有:编译文件树(dir:'libs',include:'*.jar')
好吧,主要是你导入的片段类型,因为你使用的api小于11。我确信您必须导入支持v4片段。做一点改变。从碎片活动扩展您的活动