如何解决尝试在空对象引用上调用虚拟方法“void com.google.ar.sceneform.ux.ArFragment.setOnTapArPlaneListener”
需要帮助解决这个空指针异常错误! 我在出现此错误的行之前用大写字母添加了注释。
public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState)
View view = inflater.inflate(R.layout.fragment_object_placer,container,false);
//Fetchting the instance of arFragment ID in XML
arFragment = (ArFragment) getFragmentManager().findFragmentById(R.id.arFragment);
>NEXT LINE IS GIVING THE ERROR
arFragment.setOnTapArPlaneListener(((hitResult,plane,motionEvent) -> {
//TRIED TO RUN CODE COMMENTING CODE BELOW STILL STILL GETIING ERROR AT ABOVE LINE
//Crating an Anchor on location where user has tapped
// Anchor anchor = hitResult.createAnchor();
// ModelRenderable.builder()
// .setSource(getActivity(),Uri.parse(s))
// .build()
// .thenAccept(modelRenderable -> addModelToScene(anchor,modelRenderable ));
}));
return view;
}
Java 空指针异常 java.lang.NullPointerException:尝试调用虚方法 'void com.google.ar.sceneform.ux.ArFragment.setOnTapArPlaneListener(com.google.ar.sceneform.ux.BaseArFragment$OnTapArPlaneListener)' 在空对象引用上 在 com.example.augmentedreality.Modules.ObjectPlacer.ObjectPlacer.onCreateView(ObjectPlacer.java:55) 在 androidx.fragment.app.Fragment.performCreateView(Fragment.java:2600) 在 androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:881) 在 androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManagerImpl.java:1238) 在 androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:1303) 在 androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:439) 在 androidx.fragment.app.FragmentManagerImpl.executeOps(FragmentManagerImpl.java:2079) 在 androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManagerImpl.java:1869) 在 androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManagerImpl.java:1824) 在 androidx.fragment.app.FragmentManagerImpl.execPendingActions(FragmentManagerImpl.java:1727) 在 androidx.fragment.app.FragmentManagerImpl$2.run(FragmentManagerImpl.java:150) 在 android.os.Handler.handleCallback(Handler.java:883) 在 android.os.Handler.dispatchMessage(Handler.java:100) 在 android.os.Looper.loop(Looper.java:224) 在 android.app.ActivityThread.main(ActivityThread.java:7590) 在 java.lang.reflect.Method.invoke(Native Method) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
解决方法
要解决此问题,请使用子片段管理器
//Fetchting the instance of arFragment ID in XML
arFragment = (ArFragment) getChildFragmentManager().findFragmentById(R.id.arFragment);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。