2011-05-19 54 views
2

我搜索了很多,發現堆棧溢出的一些線程,但它沒有幫助。我試圖通過調用一個Intent來使用Android的內置相機。這適用於2.1,但在2.2我得到「致命的例外:GLThread 11」的例外。Android上的「致命例外:GLThread 11」froyo 2.2

我看了這個題目 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中崩潰。在我看來,它是標準的代碼和功能。我如何使用內置相機。我嘗試了幾件事情。

回答

2

讓我自己回答:)我設法讓它工作。我仍然發現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); 

非常標準的,我加了嘗試捕捉,以避免應用程序崩潰時我調試器附着在我的設備。如果您爲MediaStore.EXTRA_OUTPUT傳遞null值,相機將顯示一條消息,指出找不到sdcard。哪個更好,然後崩潰。

拍完照片後,相機將返回到當前活動狀態,您可以使用將存儲在imageUri變量中的圖像。

在2.2的模擬器中,當我嘗試使用相機時,仍然出現「FATAL EXCEPTION:GLThread 11」錯誤,這很煩人。有沒有人有解決方案讓它在仿真器上工作?