Android 选择图像时应用程序崩溃
我试图使用intent获取图像,但当我选择图像时,我的应用程序立即关闭。 这是我的实际代码:Android 选择图像时应用程序崩溃,android,android-intent,Android,Android Intent,我试图使用intent获取图像,但当我选择图像时,我的应用程序立即关闭。 这是我的实际代码: private void capturarFoto() { String nameFoto = DateFormat.format("yyyy-MM-dd_hhmmss", new Date()).toString(); caminhoFoto = new File(Environment.getExternalStorageDirectory(),nameFoto); I
private void capturarFoto() {
String nameFoto = DateFormat.format("yyyy-MM-dd_hhmmss", new Date()).toString();
caminhoFoto = new File(Environment.getExternalStorageDirectory(),nameFoto);
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(caminhoFoto));
getActivity().startActivityForResult(intent, 1);
}
它应该在选择图像后调用activityresult方法,但不幸的是,它在Logcat中没有任何错误地关闭
有什么不对劲吗
LOGCAT
请替换getActivity.startActivityForResulti,1;与
然后覆盖片段中的onActivityResult,并像这样覆盖活动中的onActivityResult
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
}
并使用断点检查执行是否进入其中任何一个。请替换getActivity.startActivityForResulti,1;与
然后覆盖片段中的onActivityResult,并像这样覆盖活动中的onActivityResult
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
}
并使用断点检查执行是否进入任何一个断点。更改此选项:
String nameFoto = DateFormat.format("yyyy-MM-dd_hhmmss", new Date()).toString();
getActivity().startActivityForResult(intent, 1);
致:
并确保添加以下权限:
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
更改此项:
String nameFoto = DateFormat.format("yyyy-MM-dd_hhmmss", new Date()).toString();
getActivity().startActivityForResult(intent, 1);
致:
并确保添加以下权限:
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
首先,确保您的目录已创建
final String dir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)+ "/Folder/";
File newdir = new File(dir);
newdir.mkdirs();
比ur函数
private void capturarFoto() {
String file = dir+DateFormat.format("yyyy-MM-dd_hhmmss", new Date()).toString()+".jpg";
File newfile = new File(file);
try {
newfile.createNewFile();
} catch (IOException e) {}
Uri outputFileUri = Uri.fromFile(newfile);
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
startActivityForResult(cameraIntent, TAKE_PHOTO_CODE);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == TAKE_PHOTO_CODE && resultCode == RESULT_OK) {
Log.d("Demo Pic", "Picture is saved");
}
}
}
确保在清单中添加权限
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
祝您好运:首先确保您的目录已创建
final String dir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)+ "/Folder/";
File newdir = new File(dir);
newdir.mkdirs();
比ur函数
private void capturarFoto() {
String file = dir+DateFormat.format("yyyy-MM-dd_hhmmss", new Date()).toString()+".jpg";
File newfile = new File(file);
try {
newfile.createNewFile();
} catch (IOException e) {}
Uri outputFileUri = Uri.fromFile(newfile);
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
startActivityForResult(cameraIntent, TAKE_PHOTO_CODE);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == TAKE_PHOTO_CODE && resultCode == RESULT_OK) {
Log.d("Demo Pic", "Picture is saved");
}
}
}
确保在清单中添加权限
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
祝你好运:你看过日志了吗?通常会出现堆栈跟踪异常您在ActivityResult上实现了什么?您是否设置了android.permission.CAMERA权限和android.permission.WRITE\u外部存储权限?可能由于权限的原因,摄像头活动无法访问文件位置?logcat没有用处。请在getActivity.startActivityForResultintent中添加断点,1;,清除logcat,然后再次运行应用程序,logcat中会出现错误。另外,你可以更好地复制/粘贴消息,而不是屏幕截图。@Carlos Robles,我做了,但不起作用。选择映像时,Logcat仍然为空。@Sdra是,onActivityResult已实现,并且权限已在AndroidManifest.xml上。您查看了日志吗?通常会出现堆栈跟踪异常您在ActivityResult上实现了什么?您是否设置了android.permission.CAMERA权限和android.permission.WRITE\u外部存储权限?可能由于权限的原因,摄像头活动无法访问文件位置?logcat没有用处。请在getActivity.startActivityForResultintent中添加断点,1;,清除logcat,然后再次运行应用程序,logcat中会出现错误。另外,你可以更好地复制/粘贴消息,而不是屏幕截图。@Carlos Robles,我做了,但不起作用。选择映像时,Logcat仍然为空。@Sdra是,onActivityResult已实现,并且权限已在AndroidManifest.xmlgreat上!我很高兴你把它修好了!伟大的我很高兴你把它修好了!