我試圖在ADT中使用模擬器來測試拍攝照片的應用程序,我可以啓動攝像頭,但拍照後點擊「確認」按鈕logcat引發錯誤:模擬安卓攝像頭拍照時發生錯誤
08-21 13:46:18.933:E /的Soundpool(289):錯誤裝載/system/media/audio/ui/Effect_Tick.ogg
在此之後,回調事件在我應用程序沒有被調用,我無法獲得圖片,但是我可以點擊「取消」,並使用代碼RESULT_CANCELED調用回調。
這裏是我的代碼(部分):
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent i = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File imagesFolder = new File(Environment.getExternalStorageDirectory(), "MyImages");
imagesFolder.mkdirs(); // <----
File image = new File(imagesFolder, "image_001.jpg");
Uri fileUri = Uri.fromFile(image);
i.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); // set the image file name
// start the image capture Intent
startActivityForResult(i, 100);
...
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == 100){
if (resultCode == RESULT_OK){
} else if (resultCode == RESULT_CANCELED){
} else {
}
}
}
我「可能」在真實設備上測試我的代碼,但我真的想解決我的模擬器,任何想法如何做到這一點?
- 編輯 -
這是我的AVD的配置文件:
avd.ini.encoding=ISO-8859-1
hw.dPad=no
hw.lcd.density=320
sdcard.size=200M
hw.cpu.arch=arm
hw.device.hash=298918422
hw.camera.back=emulated
disk.dataPartition.size=200M
skin.dynamic=yes
skin.path=768x1280
hw.keyboard=yes
hw.cpu.model=cortex-a8
hw.ramSize=768
hw.device.manufacturer=Google
hw.sdCard=yes
hw.mainKeys=no
hw.accelerometer=yes
skin.name=768x1280
abi.type=armeabi-v7a
hw.trackBall=no
hw.device.name=Nexus 4
hw.battery=yes
hw.sensors.proximity=yes
image.sysdir.1=system-images\android-18\armeabi-v7a\
hw.sensors.orientation=yes
hw.audioInput=yes
hw.camera.front=emulated
hw.gps=yes
vm.heapSize=64
我還增加了以下的標記在我的清單:
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
我可以拍照的相機應用程序,看到他們在畫廊,所以我不認爲這是問題,加上幾行並沒有改變我的應用程序的行爲。 –