白鲨鱼鳍 2021-10-12 09:15 采纳率: 60%
浏览 19

安卓调用照相机出现问题o(╥﹏╥)o

public void startCamera() {

    try{
        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        if(intent.resolveActivity(getPackageManager()) != null){
             cameraPhoto = createStoragePath();//给即将拍照获取的照片命名,并返回它的uri
            intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
            imageUri = FileProvider.getUriForFile(this, "com.example.zhongju.ui.fileprovider", cameraPhoto );
            intent.putExtra(MediaStore.EXTRA_OUTPUT,imageUri);
            startActivityForResult(intent,CAMERA_REQUEST);
        }
    }catch (ActivityNotFoundException e){
        e.printStackTrace();
    }
}


/**
 * 设置相片存放路径,先将照片存放到SD卡中,再操作
 *
 * @return
 */
private File createStoragePath() {

    String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
    try {
        storagePath = Environment.getExternalStorageDirectory().getAbsolutePath()+
                File.separator + "DCM";
        storageDir = new File(storagePath);
        storageDir.mkdirs();
        imageFile = File.createTempFile(timeStamp, ".jpg", storageDir);
    } catch (IOException e) {
        e.printStackTrace();
    }

//创建Uri
return imageFile;

}

结果总是报这个错,求帮助o(╥﹏╥)oo(╥﹏╥)o

W/System.err: java.io.IOException: No such file or directory
W/System.err: at java.io.UnixFileSystem.createFileExclusively0(Native Method)
W/System.err: at java.io.UnixFileSystem.createFileExclusively(UnixFileSystem.java:317)
at java.io.File.createTempFile(File.java:2018)
at com.example.zhongju.ui.YingXiangActivity.createStoragePath(YingXiangActivity.java:104)
at com.example.zhongju.ui.YingXiangActivity.startCamera(YingXiangActivity.java:77)
at com.example.zhongju.ui.YingXiangActivity_ViewBinding$2.doClick(YingXiangActivity_ViewBinding.java:49)
at butterknife.internal.DebouncingOnClickListener.onClick(DebouncingOnClickListener.java:18)
at android.view.View.performClick(View.java:7125)
at android.view.View.performClickInternal(View.java:7102)
at android.view.View.access$3500(View.java:801)
at android.view.View$PerformClick.run(View.java:27336)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7356)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.zhongju, PID: 3864
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.io.File.getCanonicalPath()' on a null object reference
at androidx.core.content.FileProvider$SimplePathStrategy.getUriForFile(FileProvider.java:728)
at androidx.core.content.FileProvider.getUriForFile(FileProvider.java:418)
at com.example.zhongju.ui.YingXiangActivity.startCamera(YingXiangActivity.java:79)
at com.example.zhongju.ui.YingXiangActivity_ViewBinding$2.doClick(YingXiangActivity_ViewBinding.java:49)
at butterknife.internal.DebouncingOnClickListener.onClick(DebouncingOnClickListener.java:18)
at android.view.View.performClick(View.java:7125)
at android.view.View.performClickInternal(View.java:7102)
at android.view.View.access$3500(View.java:801)
at android.view.View$PerformClick.run(View.java:27336)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7356)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)

  • 写回答

2条回答 默认 最新

  • 偷窃月亮的贼 2021-10-12 09:38
    关注

    storagePath = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "DCM"; 这个目录默认是不存在的,需要你自己手动创建,或者用: storagePath = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "DCIM";

    评论

报告相同问题?

问题事件

  • 创建了问题 10月12日

悬赏问题

  • ¥50 求恶意流量检测系统搭建教程( C++ python C)
  • ¥15 mmseqs内存报错
  • ¥15 vika文档如何与obsidian同步
  • ¥15 华为手机相册里面的照片能够替换成自己想要的照片吗?
  • ¥15 陆空双模式无人机飞控设置
  • ¥15 sentaurus lithography
  • ¥100 求抖音ck号 或者提ck教程
  • ¥15 关于#linux#的问题:子进程1等待子进程A、B退出后退出(语言-c语言)
  • ¥20 web页面如何打开Outlook 365的全球离线通讯簿功能
  • ¥15 io.jsonwebtoken.security.Keys