gpt4 book ai didi

java - 手电筒开/关应用程序崩溃

转载 作者:行者123 更新时间:2023-11-30 03:03:52 24 4
gpt4 key购买 nike

我在这里找到了一个开关手机灯的例子: http://www.mkyong.com/android/how-to-turn-onoff-camera-ledflashlight-in-android/

所以我为我的应用程序截取了一些代码并遇到了错误。

03-02 21:31:28.066: E/AndroidRuntime(1591): FATAL EXCEPTION: main
03-02 21:31:28.066: E/AndroidRuntime(1591): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.kaltech.led/com.kaltech.led.ActivityMAIN}: java.lang.NullPointerException
03-02 21:31:28.066: E/AndroidRuntime(1591): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
03-02 21:31:28.066: E/AndroidRuntime(1591): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
03-02 21:31:28.066: E/AndroidRuntime(1591): at android.app.ActivityThread.access$600(ActivityThread.java:130)
03-02 21:31:28.066: E/AndroidRuntime(1591): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
03-02 21:31:28.066: E/AndroidRuntime(1591): at android.os.Handler.dispatchMessage(Handler.java:99)
03-02 21:31:28.066: E/AndroidRuntime(1591): at android.os.Looper.loop(Looper.java:137)
03-02 21:31:28.066: E/AndroidRuntime(1591): at android.app.ActivityThread.main(ActivityThread.java:4745)
03-02 21:31:28.066: E/AndroidRuntime(1591): at java.lang.reflect.Method.invokeNative(Native Method)
03-02 21:31:28.066: E/AndroidRuntime(1591): at java.lang.reflect.Method.invoke(Method.java:511)
03-02 21:31:28.066: E/AndroidRuntime(1591): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
03-02 21:31:28.066: E/AndroidRuntime(1591): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
03-02 21:31:28.066: E/AndroidRuntime(1591): at dalvik.system.NativeStart.main(Native Method)
03-02 21:31:28.066: E/AndroidRuntime(1591): Caused by: java.lang.NullPointerException
03-02 21:31:28.066: E/AndroidRuntime(1591): at com.kaltech.led.ActivityMAIN.onCreate(ActivityMAIN.java:40)
03-02 21:31:28.066: E/AndroidRuntime(1591): at android.app.Activity.performCreate(Activity.java:5008)
03-02 21:31:28.066: E/AndroidRuntime(1591): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
03-02 21:31:28.066: E/AndroidRuntime(1591): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
03-02 21:31:28.066: E/AndroidRuntime(1591): ... 11 more

编辑:

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

bat_status = (ImageView)findViewById(R.id.bat_stat);
mySwitch = (Switch) findViewById(R.id.switch_signal);

Context context = this;
PackageManager pm = context.getPackageManager();

if (!pm.hasSystemFeature(PackageManager.FEATURE_CAMERA)) {
Log.e("err", "Device has no camera!");
return;
}

camera = Camera.open();
final Parameters p = camera.getParameters();

mySwitch.setChecked(false);
mySwitch.setOnCheckedChangeListener(new OnCheckedChangeListener() {


@Override
public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {

if(isChecked){ //EIN
bat_status.setImageResource(R.drawable.bat_signal_1);

p.setFlashMode(Parameters.FLASH_MODE_TORCH);

camera.setParameters(p);
camera.startPreview();
isLighOn = true;

}
else{ //AUS
bat_status.setImageResource(R.drawable.bat_signal_2);

p.setFlashMode(Parameters.FLASH_MODE_OFF);
camera.setParameters(p);
camera.stopPreview();
isLighOn = false;
}

}
});


}

编辑 2:

final Parameters p = camera.getParameters(); //Line 40

最佳答案

您在第 40 行遇到 NullPointerException,即:

final Parameters p = camera.getParameters();

很可能 camera 对象为空。您之前使用以下方法初始化它:

camera = Camera.open();

和 Camera.open():

Creates a new Camera object to access the first back-facing camera on the device. If the device does not have a back-facing camera, this returns null.

检查你的相机是否不为空,然后才继续,例如:

camera = Camera.open();

if (camera != null) {
//normal code
}
else {
//ERROR, camera is null
}

你得到这个可能是因为:

  • 设备没有后置摄像头
  • 你忘了加

    <uses-permission android:name="android.permission.CAMERA" />

在您的 AndroidManifest 中。

关于java - 手电筒开/关应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22133953/

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