我需要通过FragmentManagerImpl捕获NullPointerException。
但是尝试...catch不起作用。
如何在getItem()上捕获显式的NullPointerException?
.......
try {
pagerAdapter = new TFragmentPagerAdapter(getFragmentManager());
} catch (Exception e) {
Log.e(LOG_TAG, e.toString());
}
..................
private class TFragmentPagerAdapter extends FragmentPagerAdapter {
public TFragmentPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
Fragment fragment = null;
switch (training) {
case VAR:
// fragment = getTFragment(position);
fragment = null;
break;
default:
break;
}
if (fragment == null) {
throw new RuntimeException();
}
return fragment;
}
}
我看到堆栈跟踪
java.lang.NullPointerException:试图在Android.support.v4.view.viewPager.AddNewItem(ViewPager.java:8)的Android.support.v4.app.backStackRecord.doaddop(BackStackRecord.java:417)的Android.support.v4.app.backStackRecord.add(BackStackRecord.java:412)的Android.support.v4.app.fragmentPagerAdapter.InstantiateItem(FragentPagerAdapter.java:99)的69)在Android.support.v4.view.viewPager.populate(ViewPager.java:1019)在Android.support.v4.view.viewPager.populate(ViewPager.java:951)在Android.support.v4.view.viewPager.populate(ViewPager.java:951)在Android.support.v4.view.viewPager.onMeasure(ViewPager.java:1473)在Android.view.viewPager.measure(ViewPager.java:1473)在ChildWithMargins(ViewGroup.java:5535)在Android.widget.framelayout.onMeasur(framelayout.java:436)在Android.view.view.v4.widget.drawerlayout.measur(view.java:17547)在Android.support.v4.widget.drawerlayout.onMeasur(drawerlayout.java:868)在Android.view.view.view.view.java:17547)在Android.view.view.view.veasure(drawerlayout.measure(.view.measure(view.java:17547)在Android.view.viewgroup.measureChildWithMargins(viewgroup.java:5535)在Android.support.v7.internal.widget.actionBaroverlayLayout.onMeasure(actionBaroverlayLayout.java:444)在Android.view.view.viewgroup.measure(view.java:17547)在Android.view.viewgroup.measure(view.java:45)在35)在Android.widget.linearandroid.widget.linearlayout.java:1436)android.widget.linearlayout.measureVertical(linearlayout.java:722)android.widget.linearlayout.onMeasur(linearlayout.java:613)android.view.viewgroup.measur(view.java:17547)android.view.view.measur(view.java:17547)android.view.view.measury(viewgroup.onMe:17547)在Android.view.viewrootimpl.performMeasure(viewrootimpl.java:2015)在Android.view.viewrootimpl.measurierarchy(viewrootimpl.java:1173)在Android.view.viewrootimpl.performTraversals(viewrootimpl.java:1173)在Android.view.viewrootimpl.performTraversals(viewrootimpl.java:1379)在Android.view.viewrootimpl.doTraversal(choreographer.java:580)at和在Android.view.choreographer.doFrame(chorographer.java:550)在Android.view.choreographer$framedisplayEventReceiver.run(choreographer.java:753),在Android.os.handler.handleCallback(handler.java:739)在Android.os.handler.dispatchMessage(handler.java:95),在Android.app.activityThread.loop(looper.java:135),在Android.app.activityThread.main com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:903),地址为com.android.internal.os.zygoteinit.main(zygoteinit.java:698)
你发布的代码基本有效。你的问题在别处。编辑您的文章,并向我们展示ActivityThread.java:5257的代码。
为了供您参考,这段代码显示了您在公共片段getItem(int位置)中尝试做的事情...抛出您想要的异常,并且它可以被捕获。
package org.jf;
public class SomeClass {
public static void main(String[] args) {
new SomeClass();
}
public SomeClass() {
try {
AClass x = new AClass();
x.getItem(1);
} catch (Exception e) {
System.out.println("Caught");
}
}
class AClass {
public Object getItem(int position) {
int training = 1;
Object fragment = null;
switch (training) {
case 1:
// fragment = getTFragment(position);
fragment = null;
break;
default:
break;
}
if (fragment == null) {
throw new RuntimeException();
}
return fragment;
}
}
}
这就是我在添加“simple_permissions”包时看到的错误。我怎么才能修好这个?我最近升级了flutter,在升级之前它一直工作得很好。/root/flutter/.pub-cache/hosted/pub.dartlang.org/simple_permissions-0.1.9/android/src/main/java/com/ethras/simplepermission/sim
问题内容: 我在测试应用程序时未在手机上找到它。为什么会发生这种情况,我该如何解决? 我还不知道,但我想我可以与有同样的问题 和如果他们这样做会引起其他问题。 我以前从未遇到过任何问题,但现在无法正常工作。我有android.support.v4 lib(可能是一个)。 编辑:更好的错误消息 我的错误 问题答案: 如果您最近更新了ADT,则库构建路径可能已被弄乱了。请尝试以下操作: 右键单击项目
我使用的是Qt 5.4。我导入了SDK 实际上,我试图使用多行通知,我在java文件中使用了这一行: CustMainActivity.java: 我遇到一个错误:打包android。支持v4.app不存在 我阅读了它,并添加了android-support-v4。jar和android-support-v7-appcompat。但我不知道如何在Qt中修复它。
a/zygote:java_vm_ext.cc:534]JNI检测到应用程序中的错误:调用了JNI GetStaticMethodID,但出现挂起的异常java.lang.ClassNotFoundException:在路径:DexPathList[[zip文件“/data/app/packageName-fnlt_hyr4uv4lfvitkfrgg==/base.apk”],NativeLibr
我的谷歌pixel 2搭载android 9版本时突然崩溃。有没有任何提示,这背后的原因是什么,而且它不是每次都可以复制的。 详细日志... 在路径:DexPathList[[zip文件”/data/app/com.google.android.deskclock-o_Iury9TRKVebStZjRrd0g==/base.apk]上找不到类“android.support.v4.app.Core
问题内容: 我收到以下错误: 当我运行一个项目时,正在使用Coursera上的Android手持式系统对移动应用程序进行编程。我认为此错误与我的输出答案被认为不正确有关。如果可以解决此错误,则可以修复输出。 最初运行测试时,我没有最新版本的Android支持存储库(未安装),但是现在我根据SDK Manager(v4)拥有最新版本的Android支持存储库,甚至重新启动了Eclipse和模拟器,但