Java 尝试调用虚拟方法';空对象引用上的void com.google.ar.sceneform.ux.ArFragment.setOnTapArPlaneListener
需要帮助解决此nullpointerexception错误! 在我得到这个错误的那一行之前,我用大写字母写了一个注释Java 尝试调用虚拟方法';空对象引用上的void com.google.ar.sceneform.ux.ArFragment.setOnTapArPlaneListener,java,android,sceneform,Java,Android,Sceneform,需要帮助解决此nullpointerexception错误! 在我得到这个错误的那一行之前,我用大写字母写了一个注释 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) View view = inflater.inflate(R.layout.fragment_o
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.ExecuteOptoGether(FragmentManagerImpl.java:1869)
在androidx.fragment.app.FragmentManagerImpl.RemovedAndTopOperationsAndExecute(FragmentManagerImpl.java:1824)
位于androidx.fragment.app.FragmentManagerImpl.ExecutPendingActions(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(本机方法)
位于com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
要解决此问题,请使用CHILDFRAGMENT管理器
//Fetchting the instance of arFragment ID in XML
arFragment = (ArFragment) getChildFragmentManager().findFragmentById(R.id.arFragment);