我想在SD卡上存儲位圖聽到是我的代碼存儲的圖像,它在所有設備上工作正常,但不在三星設備只...錯誤,而在三星設備只存儲位圖(PNG)
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
通話的AsyncTask 使用此代碼
new SaveFile(mybitmap).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
我的Java文件的AsyncTask片斷
class SaveFile extends AsyncTask<String, String, String> {
Bitmap bmp;
public SaveFile(Bitmap bmp) {
// TODO Auto-generated constructor stub
this.bmp = bmp;
}
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
FullScreenViewActivity.this.progress = ProgressDialog.show(
FullScreenViewActivity.this, "", "Please wait...");
}
@Override
protected String doInBackground(String... f_url) {
Log.i("asynk call ", "from");
OutputStream output;
Calendar cal = Calendar.getInstance();
// Find the SD Card path
File filepath = Environment.getExternalStorageDirectory();
// Create a new folder in SD Card
File dir = new File(filepath.getAbsolutePath() + "/Tatto/");
dir.mkdirs();
String mImagename = "image" + cal.getTimeInMillis() + ".png";
// Create a name for the saved image
file = new File(dir, mImagename);
// Show a toast message on successful save
/*
* Toast.makeText(CaptureActivity.this, "Image Saved to SD Card",
* Toast.LENGTH_SHORT).show();
*/
try {
output = new FileOutputStream(file);
// Compress into png format image from 0% - 100%
bmp.compress(Bitmap.CompressFormat.PNG, 100, output);
output.flush();
output.close();
}
catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
progress.dismiss();
Log.i("captureImage call + in catch ", "" + e);
}
Log.i("asynk call end ", "from");
return null;
}
@Override
protected void onPostExecute(String result) {
// TODO Auto-generated method stub
progress.dismiss();
Toast.makeText(FullScreenViewActivity.this, "Image Saved...",
Toast.LENGTH_SHORT).show();
}
}
錯誤日誌..
12-14 13:53:36.361:d/AndroidRuntime(20430):關閉VM 12-14 13:53:36.361:W/dalvikvm(20430):主題ID = 1:線程退出未捕獲的異常(組= 0x419088b0) 12-14 13:53:36.371:E/AndroidRuntime(20430):致命例外:主 12-14 13:53:36.371:E/AndroidRuntime(20430) java.lang.RuntimeException:setParameters failed 12-14 13:53:36.371:E/AndroidRuntime(20430):at android.hardware.Camera.native_setParameters(Native Method) 12-14 13:53:36.371:E/AndroidRuntime (20430):在android.hardware.Camera.setParameters(Camera.java:1551) 12-14 13:53:36.371:E/AndroidRuntime(204 30):at com.karma.tattoo.MainActivity.surfaceCreated(MainActivity.java:403) 12-14 13:53:36.371:E/AndroidRuntime(20430):at android.view.SurfaceView.updateWindow(SurfaceView.java: 571) 12-14 13:53:36.371:E/AndroidRuntime(20430):at android.view.SurfaceView.access $ 000(SurfaceView.java:86) 12-14 13:53:36.371:E/AndroidRuntime(20430 ):在android.view.SurfaceView $ 3.onPreDraw(SurfaceView.java:175) 12-14 13:53:36.371:E/AndroidRuntime(20430):在android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:837) E:// AndroidRuntime(20430):at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1870) 12-14 13:53:36.371:E/AndroidRuntime(20430):at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1009) 12-14 13:53:36.371:E/AndroidRu ntime(20430):at android.view.ViewRootImpl $ TraversalRunnable.run(ViewRootImpl.java:5508) 12-14 13:53:36.371:E/AndroidRuntime(20430):at android.view.Choreographer $ CallbackRecord.run Choreographer.java:749) 12-14 13:53:36.371:E/AndroidRuntime(20430):at android.view.Choreographer.doCallbacks(Choreographer.java:562) 12-14 13:53:36.371:E/AndroidRuntime(20430):在android.view.Choreographer.doFrame(Choreographer.java:532) 12-14 13:53:36.371:E/AndroidRuntime(20430):at android.view.Choreographer $ FrameDisplayEventReceiver.run(Choreographer。 java:735) 12-14 13:53:36.371:E/AndroidRuntime(20430):at android.os.Handler.handleCallback(Handler.java:730) 12-14 13:53:36.371:E/AndroidRuntime 20430):at android.os.Handler.dispatchMessage(Handler.java:92) 12-14 13:53:36.371:E/AndroidRuntime(20430):在android.os.Looper.loop(Looper.java:213) 12-14 13:53:36.371:E/AndroidRuntime(20430):在android.app.ActivityThread.main(ActivityThread.java: 5225) 12-14 13:53:36.371:E/AndroidRuntime(20430):at java.lang.reflect.Method.invokeNative(Native Method) 12-14 13:53:36.371:E/AndroidRuntime(20430):在java.lang.reflect.Method.invoke(Method.java:525) 12-14 13:53:36.371:E/AndroidRuntime(20430):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit .java:741) 12-14 13:53:36.371:E/AndroidRuntime(20430):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557) 12-14 13:53:36.371 :E/AndroidRuntime(20430):在dalvik.system.NativeStart。主(本地方法)
請幫助我,如果我錯了....這個問題只在三星設備...
你的錯誤日誌在哪裏? – Jerome 2014-12-13 13:46:22
@Jerome檢查我的編輯.. – 2014-12-15 07:31:02