求助!这个空指针的bug'boolean android.graphics.Bitmap.compress‘该怎么改?

weixin_39102090 2019-06-18 11:11:18
改了好几天都没找正确修改方法,救命!!!
最近在看一个demo,每当打开系统相册就会报空指针异常

这是异常信息



这是指向的错误代码

换了个不同版本的模拟器,能进去系统相册了,但是单击图片又会报这个空指针异常,到底怎么回事?
所有的权限能加的都加了,是要动态申请权限还是其他问题?该怎么改?卡了好几天,救命!!!
...全文
1545 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
展示的imageView是自定义的吧,在自定义控件的view中重写onDraw方法,在onDraw进行捕获这个异常就ok了。
  • 打赏
  • 举报
回复
估计是版本,权限问题。注意9.0后的手机。
jklwan 2019-06-19
  • 打赏
  • 举报
回复
最好的方法就是debug,一步步走下去,看看压缩bitmap的方法中哪一步有问题,文件是否存在,文件是否有效,宽高是否为0,是否有权限等等。
旅行蜗牛 2019-06-19
  • 打赏
  • 举报
回复
android 7.0 以后不能直接使用 uri.fromfile 参考这个,还有其他配置项百度一下

Uri uri = null;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
    uri = FileProvider.getUriForFile(this, getPackageName() + ".fileProvider", file);
} else {
    uri = Uri.fromFile(file);
}
gxh_apologize 2019-06-19
  • 打赏
  • 举报
回复
引用 9 楼 weixin_39102090 的回复:
[quote=引用 8 楼 gxh_apologize 的回复:] compressImageFromFile返回的bitmap为null
// 数值越高,图片像素越低
    //int inSampleSize = 8;
    BitmapFactory.Options options = new BitmapFactory.Options();
    options.inJustDecodeBounds = false;
    //为true的时候不会真正加载图片,而是得到图片的宽高信息。
    //options.inJustDecodeBounds = true;

    options.inSampleSize = inSampleSize;//采样率
    Bitmap bitmap = BitmapFactory.decodeFile(filePath, options);
改了还是没效果,不过还是谢谢你哈[/quote]那你调试一下吧,看看这个compressImageFromFile哪行代码有问题,,反正bitmap最后是null 上面的代码是我之前的代码,我是可以生成bitmap的
weixin_39102090 2019-06-18
  • 打赏
  • 举报
回复
[quote=引用 1 楼 leonUI 的回复:]
。。。。。求助
weixin_39102090 2019-06-18
  • 打赏
  • 举报
回复
引用 8 楼 gxh_apologize 的回复:
compressImageFromFile返回的bitmap为null
// 数值越高,图片像素越低
//int inSampleSize = 8;
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = false;
//为true的时候不会真正加载图片,而是得到图片的宽高信息。
//options.inJustDecodeBounds = true;

options.inSampleSize = inSampleSize;//采样率
Bitmap bitmap = BitmapFactory.decodeFile(filePath, options);

改了还是没效果,不过还是谢谢你哈
gxh_apologize 2019-06-18
  • 打赏
  • 举报
回复
compressImageFromFile返回的bitmap为null
// 数值越高,图片像素越低
    //int inSampleSize = 8;
    BitmapFactory.Options options = new BitmapFactory.Options();
    options.inJustDecodeBounds = false;
    //为true的时候不会真正加载图片,而是得到图片的宽高信息。
    //options.inJustDecodeBounds = true;

    options.inSampleSize = inSampleSize;//采样率
    Bitmap bitmap = BitmapFactory.decodeFile(filePath, options);
weixin_39102090 2019-06-18
  • 打赏
  • 举报
回复
引用 6 楼 旅行蜗牛 的回复:
把你点击事件那里的代码贴出来,问题不在保存这里

旅行蜗牛 2019-06-18
  • 打赏
  • 举报
回复
把你点击事件那里的代码贴出来,问题不在保存这里
weixin_39102090 2019-06-18
  • 打赏
  • 举报
回复
引用 3 楼 jklwan 的回复:
bitmap是null
自己检查下怎么得到bitmap的。

这里咋回事?
weixin_39102090 2019-06-18
  • 打赏
  • 举报
回复
引用 3 楼 jklwan 的回复:
bitmap是null
自己检查下怎么得到bitmap的。

真不知道咋回事,求救啊。。。

jklwan 2019-06-18
  • 打赏
  • 举报
回复
bitmap是null 自己检查下怎么得到bitmap的。
​ 博主介绍:✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌项目名称基于Web的酒店客房管理系统的设计与实现系统说明3.2.1  用户模块功能分析前台模块应主要包括用户登录模块、用户注册模块、查看客房信息模块、客房预定 模块、用户留言模块、充值模块和个人信息维护模块。用户登录模块:用户通过输入注册的的账号和密码,然后进行身份验证,匹配成功 后实现登录功能。用户注册模块:用户输入合法的账号和密码可以实现注册功能。 查看客房信息模块:用户可以通过首页查看客房的价格,图片,详情等信息,从而   可以选择想要预定的房间。 客房预定模块:用户选择自己想要预定的客房后,可以通过输入相关信息进行订房操作。用户留言模块:用户可以向管理员发送留言。 充值模块:用户可以通过添加银行卡再为自己进行充值操作。 个人信息维护模块:用户可以修自己的姓名、密码、身份证号等信息,还可以查看自己的订单。3.2.2  管理员模块功能分析对于管理员而言,一个好的管理系统总是能让酒店的管理工作事半功倍[7]。管理员 能够通过这个系统对自己的酒店情况一目了然,应该包括客户留言模块、客房管理模 块、订房信息管理模块、入住信息管理模块、统计分析模块、酒店新闻管理模块、会 员信息管理模块、员工信息管理模块、系统用户管理模块、个人信息维护模块。客户留言模块:管理员可以查看并回复用户的留言。客房管理模块:管理员可以管理客房信息,可以添加新的客房,删除已经停用的客房信息,还可以修现有的客房信息。订房信息管理模块:管理员可以处理用户的订房请求,为用户办理入住手续。入住信息管理模块:对于没有注册的线下客户,也可以办理入住手续。统计分析模块:可以对酒店所有的入住信息进行记录和总结分析。酒店新闻管理模块:管理员可以更新网站上的新闻公告,展示图片等信息。会员信息管理模块:管理员可以查看到所有的注册会员信息,可以对会员信息进行删除,修,添加操作。员工信息管理模块:管理员可以查看到自己公司所有的员工信息,而且还可以对员工的相关信息进行管理。系统用户管理模块:管理员可以查看到所有的系统管理员信息并对管理员信息进行管理。个人信息维护模块:管理员可以更自己的登录密码或者是姓名、性别、手机号等 相关个人信息。​编辑 环境需要1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 5.数据库:MySql 5.7版本;6.是否Maven项目:否;技术栈1. 后端:Spring+SpringMVC+Mybatis2. 前端:JSP+CSS+JavaScript+jQuery使用说明1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;3. 将项目中springmvc-servlet.xml配置文件中的数据库配置为自己的配置;4. 运行项目,在浏览器中输入http://localhost:8080/ 登录运行截图​编辑​编辑​编辑​编辑​编辑​编辑​编辑​编辑​编辑​编辑​编辑​编辑​编辑​编辑​编辑 用户管理控制层:package com.houserss.controller;import javax.servlet.http.HttpSession;import org.apache.commons.lang3.StringUtils;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.ResponseBody;import com.houserss.common.Const;import com.houserss.common.Const.Role;import com.houserss.common.ServerResponse;import com.houserss.pojo.User;import com.houserss.service.IUserService;import com.houserss.service.impl.UserServiceImpl;import com.houserss.util.MD5Util;import com.houserss.util.TimeUtils;import com.houserss.vo.DeleteHouseVo;import com.houserss.vo.PageInfoVo;/** * Created by admin */@Controller@RequestMapping(/user/)public class UserController if (ip != null && ip.length() > 0) String[] ips = ip.split(,);for (int i = 0; i  

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧