Android Studio 在加载自定义properties配置文件时出错:

java.lang.ExceptionInInitializerErrorCaused by: java.lang.NullPointerException


 

定位到出错的地方,源头是Properties类 对象的load()方法,该方法需要一个InputStream的参数

Properties p = new Properties(); ... p.load(is);

文件是放在包根目录的,assets试过,项目根目录也试过,java根目录也试过,src根目录也试过

网上百度试过以下方法:

//视频中方法 InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("com/example/app/db.properties");

 

//百度方法1:通过当前类加载器的getResourceAsStream方法获取 InputStream is = DBUtils.class.getClassLoader().getResourceAsStream("com/example/app/db.properties");

 

//百度方法2:从文件方式获取 InputStream is = null; try {     is = new FileInputStream(new File("com/example/app/db.properties")); } catch (FileNotFoundException e) {     e.printStackTrace(); }

 

//百度方法3:通过类加载器获取 InputStream is = ClassLoader.getSystemResourceAsStream("com/example/app/db.properties");

 

//百度方法4:通过url获取 InputStream is = null; try {     java.net.URL url = new URL("com/example/app/db.properties");     is = url.openStream(); } catch (MalformedURLException e) {     e.printStackTrace(); } catch (IOException e) {     e.printStackTrace(); }

 

其他方法

InputStream is = context.getAssets().open("com/example/app/db.properties");

 

InputStream is = getResources().openRawResource(R.raw.app);

 

InputStream is = DBUtils.class.getResourceAsStream("com/example/app/db.properties");

 

最后想到需要InputStream类型的对象,传入它的子类应该也是可以的吧,

然后用绝对路径传入:

InputStream is = new FileInputStream("C:\\Users\\Admin\\Desktop\\db.properties");

结果成了!

 

绝对路径太费劲,想换相对路径,使用

System.out.println(System.getProperty("user.dir"));

输出当前项目所在文件夹路径

C:\Users\Admin\AndroidStudioProjects\App

原来如此!

接下来替换成相对路径:

InputStream is = new FileInputStream(".\\app\\src\\main\\java\\com\\example\\app\\db.properties");

Over!

 

PS:

直接使用InputStream的方式没有成功,不知道问题出现在哪里,望路过大佬不吝赐教!

更多相关文章

  1. Android四大组件易考题分析
  2. Android中四种实现点击事件的方法
  3. Android获取meta-data
  4. Android(安卓)Studio实现标题栏和状态栏的隐藏
  5. Android开发遇到的问题和小知识总结(不断更新中)
  6. Android(安卓)添加百度地图的问题
  7. Android(安卓)bitmap 一些常用用法
  8. Android(安卓)TextView跑马灯效果
  9. Android之选项菜单和上下文菜单解析

随机推荐

  1. Android键盘灯亮度控制
  2. Android(安卓)各种图片转黑白图和抖动算
  3. Hello~ Android(安卓)开发者们
  4. Android中的PID,TID和UID
  5. 安卓使用 xml 文件代替普通位图图标
  6. android TextView 字体竖着写(纵向)的方
  7. Android创意——多功能智能播放器
  8. Android(安卓)模糊搜索
  9. 记录需求-在Service中拍照
  10. Android中多线程下载列表实现