【问题标题】:"FATAL EXCEPTION: GLThread 11" on android froyo 2.2android froyo 2.2 上的“致命异常:GLThread 11”
【发布时间】:2011-05-19 22:23:40
【问题描述】:

我用谷歌搜索了很多,发现堆栈溢出时有几个线程,但没有帮助。我试图通过调用 Intent 来使用 Android 的内置摄像头。这适用于 2.1,但在 2.2 上我得到“FATAL EXCEPTION: GLThread 11”异常。

我读过这个话题 Camera crashes in Android 2.2

还有谷歌线程 http://code.google.com/p/android/issues/detail?id=7909

    String fileName = Environment.getExternalStorageDirectory().getAbsolutePath() + "temp-" + System.currentTimeMillis() + ".jpg";

    ContentValues values = new ContentValues();
    values.put(MediaStore.Images.Media.TITLE, fileName);
    values.put(MediaStore.Images.Media.DESCRIPTION,"Image capture by camera");

    imageUri = ctx.getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);

    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    //intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
    intent.putExtra(MediaStore.EXTRA_OUTPUT, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);


    //http://marakana.com/forums/android/examples/39.html
    ctx.startActivityForResult(intent, REQUEST_CODE);

这是我用来调用相机的代码。我猜直截了当。但是当我拍照并点击“保存”/“接受”按钮时,应用程序在 Android 2.2 中崩溃。在我看来,这是标准代码和功能。如何使用内置摄像头。我已经尝试了几件事。

【问题讨论】:

    标签: android exception camera android-2.2-froyo


    【解决方案1】:

    让我自己回答:)我设法让它工作。我还在发现Android。首先,上面的代码永远不会工作。尽管如此,使用相机仍然是一项艰巨的工作......并对其进行测试。我无法在 2.2 的模拟器中工作的意图,对于 2.1 它可以工作。但该代码适用于设备上的 2.2 和 2.1。我发现的另一个奇怪的事情是,当您将调试器附加到您的设备时,它不可能使用 MediaStore.Images.Media.EXTERNAL_CONTENT_URI。它会引发外部存储不存在的错误。它与USB连接有关。无论如何,用于意图相机的代码:

            String fileName = System.currentTimeMillis() + ".jpg";
            ContentValues values = new ContentValues();
            values.put(MediaStore.Images.Media.TITLE, fileName);
            values.put(MediaStore.Images.Media.DESCRIPTION, "Image capture by camera");
            values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg");
    
            try
            {
                imageUri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
            }
            catch (Exception e)
            {
                Log.e(TAG, "", e);
            }
    
            Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
    
            ctx.startActivityForResult(intent, REQUEST_CODE_PHOTO);
    

    非常标准,我添加了 try catch 以避免当我将调试器附加到我的设备时应用程序崩溃。如果您为 MediaStore.EXTRA_OUTPUT 传递 null ,相机将显示一条消息,指出无法找到 sdcard。哪个比崩溃更好。

    在您拍照后,相机将返回您当前的活动,您可以使用将存储在 imageUri 变量中的图像。

    在 2.2 的模拟器中,当我尝试使用相机时,仍然会抛出错误“FATAL EXCEPTION: GLThread 11”,这很烦人。有没有人有办法让它在模拟器上运行?

    【讨论】:

      猜你喜欢
      • 2013-11-12
      • 1970-01-01
      • 2022-07-04
      • 1970-01-01
      • 1970-01-01
      • 2013-01-05
      • 1970-01-01
      • 1970-01-01
      • 2012-03-26
      相关资源
      最近更新 更多