Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/129.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android清单权限问题_Java_Android_Permissions_Crash_Manifest - Fatal编程技术网

Java Android清单权限问题

Java Android清单权限问题,java,android,permissions,crash,manifest,Java,Android,Permissions,Crash,Manifest,我跟随在线教程学习如何创建一个简单的应用程序,可以打开和关闭手机的摄像头 <manifest....> <uses-permission android:name = "android.permission.CAMERA"/> <uses-feature android:name = "android.hardware.camera"/> </manifest> 另一件奇怪的事:当我安装应用程序时,没有关于需要什么权限的详细信息 该应用

我跟随在线教程学习如何创建一个简单的应用程序,可以打开和关闭手机的摄像头

<manifest....>

<uses-permission android:name = "android.permission.CAMERA"/>
    <uses-feature android:name = "android.hardware.camera"/>
</manifest>
另一件奇怪的事:当我安装应用程序时,没有关于需要什么权限的详细信息

该应用程序可以在您的手机上访问以下内容:“而且什么都没有。(尽管教程中显示了应用程序需要摄像头许可的权限。)

谁能帮帮我吗,谢谢

setContentView(R.layout.activity_main);

Button aprinde =(Button)findViewById(R.id.aprinde);
//Button sting = (Button)findViewById(R.id.sting);

cameraObj = Camera.open();

aprinde.setOnClickListener(new View.OnClickListener()
{

    public void onClick(View view){

        Camera.Parameters cameraParams = cameraObj.getParameters();

        cameraParams.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);

        cameraObj.setParameters(cameraParams);
        cameraObj.startPreview();


    }

} );

你的应用程序正在崩溃,因为你在没有背面摄像头的模拟器上运行它

Camera#open()的文档

创建一个新的摄影机对象以访问屏幕上的第一个后向摄影机 装置。如果设备没有背面摄像头,则返回 空

您可以通过检查
null
来修复崩溃

public void onClick(View v) {
    if (cameraObj == null) {
        return;
    }
    Camera.Parameters cameraParams = cameraObj.getParameters();
    cameraParams.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
    cameraObj.setParameters(cameraParams);
    cameraObj.startPreview();
}
您还应该注意
setParameters
,因为如果设备没有闪存,这也可能会崩溃

public void onClick(View v) {
    if (cameraObj == null) {
        return;
    }
    Camera.Parameters cameraParams = cameraObj.getParameters();
    if (cameraParams.getFlashMode() == null) {
        return;
    }
    cameraParams.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
    cameraObj.setParameters(cameraParams);
    cameraObj.startPreview();
}

请发布崩溃的堆栈跟踪。如果您是通过ADB(Android Studio)安装应用程序,则不会提示您批准权限。好的,
MainActivity.java
的第33行是什么?可能的解决方案?@Jonathan727第26行:cameraObj=Camera.open();当然应用程序正在启动。我做了两个钮扣。一个是这个,那个崩溃了,另一个什么也不做。我正在emulator和手机上运行应用程序。两个都要撞车。
public void onClick(View v) {
    if (cameraObj == null) {
        return;
    }
    Camera.Parameters cameraParams = cameraObj.getParameters();
    if (cameraParams.getFlashMode() == null) {
        return;
    }
    cameraParams.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
    cameraObj.setParameters(cameraParams);
    cameraObj.startPreview();
}