gpt4 book ai didi

安卓工作室 : Attempt to invoke virtual method 'void android.view.View.setOnClickListener' on a null object reference

转载 作者:行者123 更新时间:2023-11-29 16:29:41 24 4
gpt4 key购买 nike

我不断收到 NullPointerException。

Attempt to invoke virtual method 'void android.view.View.setOnClickListener(android.view.View$OnClickListener)' on a null object reference

我知道是因为(SurfaceView)view.findViewById(R.id.surfaceview_show_rectangle) 为null,但我不明白为什么会这样,如何解决。

我试过这个 solution .但它没有用。下面是我的 Fragment.java 和 xml 文件。

 @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_camera2_basic, container, false);
surfaceview = (SurfaceView)view.findViewById(R.id.surfaceview_show_rectangle);
return view;

}


@Override
public void onViewCreated(final View view, Bundle savedInstanceState) {

view.findViewById(R.id.picture).setOnClickListener(this);
view.findViewById(R.id.info).setOnClickListener(this);

mTextureView = (AutoFitTextureView) view.findViewById(R.id.texture);
//view.findViewById(R.id.surfaceview_show_rectangle).setOnClickListener(this);


//surfaceview = (SurfaceView)view.findViewById(R.id.surfaceview_show_rectangle);
surfaceview.setZOrderOnTop(true);
surfaceview.getHolder().setFormat(PixelFormat.TRANSPARENT);
surfaceHolder = surfaceview.getHolder();


surfaceview_result = (SurfaceView)view.findViewById(R.id.surfaceview_show_result);
surfaceview_result.setZOrderOnTop(true);
surfaceview_result.getHolder().setFormat(PixelFormat.TRANSPARENT);
surfaceResultHolder = surfaceview_result.getHolder();
}
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

<SurfaceView
android:id="@+id/surfaceview_show_rectangle"
android:layout_width="match_parent"
android:layout_height="483dp"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginStart="0dp"
android:layout_marginTop="0dp"
/>

<SurfaceView
android:id="@+id/surfaceview_show_result"
android:layout_width="match_parent"
android:layout_height="483dp"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginStart="0dp"
android:layout_marginTop="0dp" />

<com.example.android.camera2basic.AutoFitTextureView
android:id="@+id/texture"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginStart="0dp"
android:layout_marginTop="0dp" />

<FrameLayout
android:id="@+id/control"
android:layout_width="match_parent"
android:layout_height="112dp"
android:layout_alignParentBottom="true"
android:layout_alignParentStart="true"
android:background="@color/control_background">

<Button
android:id="@+id/picture"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:visibility="invisible"
android:text="@string/picture" />

<ImageButton
android:id="@+id/info"
android:contentDescription="@string/description_info"
style="@android:style/Widget.Material.Light.Button.Borderless"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|right"
android:padding="20dp"
android:visibility="invisible"
android:src="@drawable/ic_action_info" />

</FrameLayout>

<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentBottom="true"
android:layout_marginStart="69dp"
android:layout_marginBottom="37dp"
android:text="Camera2Dome"
android:textColor="#fff"
android:textSize="35sp" />

</RelativeLayout>


以下是我的错误信息。

D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.android.camera2basic, PID: 9168
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.android.camera2basic/com.example.android.camera2basic.CameraActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.SurfaceView.setZOrderOnTop(boolean)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2429)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2493)
at android.app.ActivityThread.access$1000(ActivityThread.java:150)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1357)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5444)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:746)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:636)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.SurfaceView.setZOrderOnTop(boolean)' on a null object reference
at com.example.android.camera2basic.Camera2BasicFragment.onViewCreated(Camera2BasicFragment.java:565)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1430)
at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1750)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1819)
at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:797)
at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2590)
at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2377)
at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2332)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2239)
at android.support.v4.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3231)
at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:3181)
at android.support.v4.app.FragmentController.dispatchActivityCreated(FragmentController.java:192)
at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:572)
at android.support.v7.app.AppCompatActivity.onStart(AppCompatActivity.java:177)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1237)
at android.app.Activity.performStart(Activity.java:6317)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2392)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2493) 
at android.app.ActivityThread.access$1000(ActivityThread.java:150) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1357) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:148) 
at android.app.ActivityThread.main(ActivityThread.java:5444) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:746) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:636) 
I/Process: Sending signal. PID: 9168 SIG: 9
Application terminated.

非常感谢任何帮助。提前致谢!!

最佳答案

试试这个:

View view = inflater.inflate(R.layout.fragment_camera2_basic, null);

LayoutInflater lf = getActivity().getLayoutInflater();   
View view = lf.inflate(R.layout.fragment_camera2_basic, container, false);

关于安卓工作室 : Attempt to invoke virtual method 'void android.view.View.setOnClickListener' on a null object reference,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57179471/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com