有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Android中的java异常解码位图错误:尝试调用虚拟方法“Android”。操作系统。包裹描述符

我有一个应用程序,它有一些实现某些功能的按钮

其中两项是:

  1. 共享图像-用户可以共享的应用程序提供的图像

  2. “设置为”-用户cal还利用“设置为”功能(设置为 壁纸、联系人照片等)

该应用目前还没有上线,所以我在我的手机和2-3款其他Android手机上测试了它的apk。该应用程序仅在我的设备上正常运行,但我发现

  1. “共享”和“设置为”在emulator上不起作用-日志cat错误如下所示。这是sdk

    安卓 {
        compileSdkVersion 23
        buildToolsVersion "23.0.3"
    
     defaultConfig {
        applicationId "my package name"
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    

    }

  2. “共享”和“设置为”在我的Android手机上运行得非常好- 安卓5.0。它在“手机存储器”中创建一个文件夹并保存图像 根据我的代码如下所示

  3. “共享”和“设置为”在Android 6.0上不起作用。它甚至没有创建文件夹

“记录模拟器的cat错误…即上面的第1点”

  • 在Emulator中单击“共享”后出错

爪哇。木卫一。FileNotFoundException:“/storage/emulated/0/MyFolder/myimg.png”;:打开失败:enoint(没有这样的文件或目录)

  • 在Emulator中单击“设置为”后出错

    08-22 21:27:34.526 2208-2208/?E/UriImage:解码位图时出现异常 JAVAlang.NullPointerException:尝试调用虚拟方法“安卓”。操作系统。帕塞尔菲勒。所容纳之物内容解析程序。空对象引用上的openFileDescriptor(安卓.net.Uri,java.lang.String) 在com。安卓照相机Util。makeInputStream(Util.java:336) 在com。安卓照相机Util。makeBitmap(Util.java:307) 在com。安卓照相机Util。makeBitmap(Util.java:299) 在com。安卓照相机陈列室乌里image。fullSizeBitmap(UriImage.java:94) 在com。安卓照相机陈列室乌里image。fullSizeBitmap(UriImage.java:86) 在com。安卓照相机陈列室乌里image。拇指位图(UriImage.java:120) 在com。安卓照相机CropImage。onCreate(CropImage.java:143) 在安卓。应用程序。活动performCreate(Activity.java:6237) 在安卓。应用程序。仪器仪表。callActivityOnCreate(Instrumentation.java:1107)

图像的整数数组

 Integer[] imageIDs = {
        R.drawable.image1,
        R.drawable.image2,
       .
       .
       .

}

共享按钮代码片段

           // Here, I am getting images from the Integer array I created
            bitmap = BitmapFactory.decodeResource(getResources(),imageIDs[i]);

            File filepath = Environment.getExternalStorageDirectory();

            // Creates new folder with name "MyFolder"
            File dir = new File(filepath.getAbsolutePath() + "/MyFolder/");
            dir.mkdirs();

            // Image saves with the following name
            File file = new File(dir, "myimg.png");

“设置为”按钮代码片段

    // Here, I am getting images from the Integer array I created
    bitmap = BitmapFactory.decodeResource(getResources(),imageIDs[i]);

    Rest code I added from the following thread on Stack Overflow:
    http://stackoverflow.com/a/11096164

    Here, I have added the following path:
      String absolutepath="/storage/emulated/0/MyFolder/myimg.png";

共 (0) 个答案