Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.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摄像头函数getcameraIdlist()函数不返回任何内容 该代码生成一个IllegalArguementException 即使清单中给出了所有权限,列表似乎也没有填充_Java_Android_Android Camera_Android Permissions - Fatal编程技术网

Java android摄像头函数getcameraIdlist()函数不返回任何内容 该代码生成一个IllegalArguementException 即使清单中给出了所有权限,列表似乎也没有填充

Java android摄像头函数getcameraIdlist()函数不返回任何内容 该代码生成一个IllegalArguementException 即使清单中给出了所有权限,列表似乎也没有填充,java,android,android-camera,android-permissions,Java,Android,Android Camera,Android Permissions,只要打开活动,应用程序就会崩溃 公开课合影推广活动{ 私人经理人; 公共摄像机; 专用CameraDevice.StateCallback public void setCallback(CameraDevice.StateCallback callback) { this.mcallback = callback; } public void setHandler(Handler handler) { this.mhandler = handler; } int coun

只要打开
活动
,应用程序就会崩溃

公开课合影推广活动{ 私人经理人; 公共摄像机; 专用CameraDevice.StateCallback

public void setCallback(CameraDevice.StateCallback callback) {
    this.mcallback = callback;
}

public void setHandler(Handler handler) {
    this.mhandler = handler;
}


int count=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_photo);

    String[] list=new String[10];
    CameraManager camera = (CameraManager) getSystemService(Context.CAMERA_SERVICE);

    setCallback(mcallback);
    setHandler(mhandler);
     ListView cami = (ListView) findViewById(R.id.lv);

    ArrayAdapter adapter = new ArrayAdapter<String>(this, R.layout.main_photo, R.id.textView2, list);

    cami.setAdapter(adapter);

    try

    {
        list = camera.getCameraIdList();
        count++;

    } catch (CameraAccessException e)

    {
        e.printStackTrace();
    }




       try

        {
            camera.openCamera(list[0], mcallback, mhandler);
            mcallback.onOpened(cam);


        } catch (CameraAccessException e)

        {
            e.printStackTrace();

            Log.d("Photo", "Error in opening camera");
        } catch (IllegalArgumentException a)

        {
            Log.d("Callback", "Callback Problem");
        }

    }
public void setCallback(CameraDevice.StateCallback){
this.mcallback=回调;
}
公共void setHandler(处理程序){
this.mhandler=handler;
}
整数计数=0;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(右布局图、主照片);
字符串[]列表=新字符串[10];
CameraManager camera=(CameraManager)getSystemService(Context.camera_服务);
setCallback(mcallback);
setHandler(mhandler);
ListView cami=(ListView)findViewById(R.id.lv);
ArrayAdapter=新的ArrayAdapter(这个,R.layout.main_photo,R.id.textView2,列表);
凸轮设置适配器(适配器);
尝试
{
list=camera.getCameraIdList();
计数++;
}捕获(CameraAccessE异常)
{
e、 printStackTrace();
}
尝试
{
camera.openCamera(列表[0],mcallback,mhandler);
mcallback.onOpened(cam);
}捕获(CameraAccessE异常)
{
e、 printStackTrace();
日志d(“照片”,“打开相机时出错”);
}捕获(IllegalArgumentException a)
{
Log.d(“回调”、“回调问题”);
}
}

除非我遗漏了什么,否则据我所知,在调用
setCallback(mcallback)
setHandler(mhandler)
之前,mhandler和mcallback都是空的。在调用
camera.openCamera(列表[0],mcallback,mhandler)
之前,请尝试验证这两个变量


作为旁注,数组
String[]list=new String[10]
从未使用过,您的变量将在7行之后重新分配。也许可以改为使用
String[]list;
然后在7行之后,使用
list=camera.getCameraIdList();
或者干脆使用
String[]list=camera.getCameraIdList();

哪个调用产生上述异常?