계속 오류가 발생합니다.
에뮬레이터에서 코드를 실행할 때마다 디렉토리가 생성 된 '토스트'가 표시되지만 코드 줄 바로 뒤에 오류가 있어야합니다. 이 때 나타나는 오류는 다음과 같습니다에뮬레이터 (일식)에서 sdcard로 스크린 샷을 인쇄 할 수 없습니다.
"/storage/sdcard/Pictures/screenshot.png : ENOENT (해당 파일 또는 디렉토리) : 실패 열지"나는 장소를 아래 관련 코드가
합니다.
<manifest
<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="19"
/>
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="18"
/>
</manifest>
public class myActivity {
private void openScreenPrint() {
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)){
View v1 = findViewById(R.id.myRelativeLayout).getRootView();
v1.setDrawingCacheEnabled(true);
Bitmap myBM = Bitmap.createBitmap(v1.getDrawingCache());
saveBitmap(myBM);
v1.setDrawingCacheEnabled(false);
}
else{
Toast.makeText(this, "No Permission to Write", Toast.LENGTH_SHORT).show();
}
}
public void saveBitmap(Bitmap bitmap) {
FileOutputStream fos = null;
String filePath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).toString();
File dir = new File(filePath);
if (!dir.exists()){
dir.mkdirs();
Toast.makeText(this, "created", Toast.LENGTH_LONG).show(); //This line shown every time
}
String fileName = "screenshot" + ".png";
File imagePath = new File(filePath, fileName);
try {
fos = new FileOutputStream(imagePath);
bitmap.compress(Bitmap.CompressFormat.PNG, 100, fos);
fos.flush();
fos.close();
} catch (FileNotFoundException e) {
//Log.e("Err", e.getMessage(), e);
} catch (IOException e) {
//Log.e("Err", e.getMessage(), e);
}
}
}
네, 표시된이 위치에 100 MiB를 추가했습니다. 오류를 변경하지 않은 것 같습니다. – user3527696
AVD가 실행중인 API는 무엇입니까? – scottt
대상 : Android 4.4.2-API 수준 19 – user3527696