首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Android Studio:在BitmapFactory.decodeFile上出错

Android Studio:在BitmapFactory.decodeFile上出错
EN

Stack Overflow用户
提问于 2019-04-28 00:54:16
回答 1查看 46关注 0票数 -1

我有一个用相机捕捉图像的活动。在快照之后,它将调用以下onActivityResult。我在尝试解码文档时出错(行标记为"ERROR HERE")。一些想法的原因?谢谢

Java

代码语言:javascript
复制
//if you capture image, convert to bitmap, show on screen and call readTextFromImage
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (resultCode == RESULT_OK) {
            if (requestCode == REQUEST_PICTURE_CAPTURE) {
                Bitmap bitmap = BitmapFactory.decodeFile(pictureFile.getAbsolutePath()); // <--- ERROR HERE
                bitmap = Helper.rotateBitmap(bitmap, pictureFile.getAbsolutePath());
                image.setImageBitmap(bitmap);
            } else if (requestCode == REQUEST_GET_SINGLE_FILE) {
                Bitmap bitmap = null;
                try {
                    bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), data.getData());
                } catch (Exception e) {
                    Log.d("Error Receipt: ", e.toString());
                }
                if (bitmap != null) {
                    image.setImageBitmap(bitmap);
                }
            }
            //readTextFromImage();
        }
    }

日志目录

代码语言:javascript
复制
04-27 18:25:19.276 16179-16179/com.example.ves.gennaio3 E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.ves.gennaio3, PID: 16179
    java.lang.RuntimeException: Unable to resume activity {com.example.ves.gennaio3/com.example.ves.gennaio3.ReceiptActivity}: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=100, result=-1, data=null} to activity {com.example.ves.gennaio3/com.example.ves.gennaio3.ReceiptActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.io.File.getAbsolutePath()' on a null object reference
        at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3121)
        at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3152)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2495)
        at android.app.ActivityThread.-wrap11(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1354)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:148)
        at android.app.ActivityThread.main(ActivityThread.java:5443)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
     Caused by: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=100, result=-1, data=null} to activity {com.example.ves.gennaio3/com.example.ves.gennaio3.ReceiptActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.io.File.getAbsolutePath()' on a null object reference
        at android.app.ActivityThread.deliverResults(ActivityThread.java:3720)
        at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3107)
        at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3152) 
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2495) 
        at android.app.ActivityThread.-wrap11(ActivityThread.java) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1354) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:148) 
        at android.app.ActivityThread.main(ActivityThread.java:5443) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.io.File.getAbsolutePath()' on a null object reference
        at com.example.ves.gennaio3.ReceiptActivity.onActivityResult(ReceiptActivity.java:184)
        at android.app.Activity.dispatchActivityResult(Activity.java:6442)
        at android.app.ActivityThread.deliverResults(ActivityThread.java:3716)
        at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3107) 
        at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3152) 
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2495) 
        at android.app.ActivityThread.-wrap11(ActivityThread.java) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1354) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:148) 
        at android.app.ActivityThread.main(ActivityThread.java:5443) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
EN

回答 1

Stack Overflow用户

发布于 2019-04-28 01:04:48

因为您还没有实例化pictureFile,所以默认情况下它是null。试一试

String pictureFile = data.getStringExtra("...","defaultPath");

然后你可以使用BitmapFactory.decodeFile..。如果您之前声明了pictureFile路径,请检查您的fileProvider。致敬,Csongi

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55882815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档