properties导致空指针的问题

在接入某视频SDK的过程中,properties发生空指针错误,一开始的方向是以为properties错误或SDK代码错误。

java.lang.ExceptionInInitializerError
            at java.lang.Class.newInstanceImpl(Native Method)
            at java.lang.Class.newInstance(Class.java:1319)
            at android.app.ActivityThread.installProvider(ActivityThread.java:4807)
            at android.app.ActivityThread.installContentProviders(ActivityThread.java:4432)
            at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4372)
            at android.app.ActivityThread.access$1300(ActivityThread.java:141)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1294)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:5041)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.NullPointerException: in == null
            at java.util.Properties.load(Properties.java:246)
            at com.letv.datastatistics.db.StatisContentProvider.<clinit>(StatisContentProvider.java:24)
            at java.lang.Class.newInstanceImpl(Native Method)
            at java.lang.Class.newInstance(Class.java:1319)
            at android.app.ActivityThread.installProvider(ActivityThread.java:4807)
            at android.app.ActivityThread.installContentProviders(ActivityThread.java:4432)
            at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4372)
            at android.app.ActivityThread.access$1300(ActivityThread.java:141)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1294)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:5041)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
            at dalvik.system.NativeStart.main(Native Method)

解决方案:

把properties放在(或新建在)src文件夹下面。

时间: 2024-10-25 07:41:48

properties导致空指针的问题的相关文章

由@NotNull 注解引出的关于Java空指针的控制(转)

Java 小技巧和在java应用避免NullPonintException的最佳方法 在java应用程序中,一个NullPonintException(空指针异常)是最好解决(问题)的方法.同时,空指针也是写健壮的顺畅运行的代码的关键.“预防好过治疗”这句话也同样适用于令人不爽的NullPonintException.通过应用防御性的编码技术和在遵守多个部分之间的约定,你可以再很大程度上避免NullPointException.下面的这些java小技巧可以最小化像!=null这种检查的代码.作为

双重检查 单例模式 会出现空指针问题

public static Singleton getInstance() { if (instance == null) { synchronized(Singleton.class) { //1 if (instance == null) //2 instance = new Singleton(); //3 } } return instance; } 简单的理解: 由于java实例化一个对象的操作(new)不是原子性的.所以在线程a 在执行到 代码  3 处时,当3完成了一部分时,ins

Selenium: 空指针error

Error 类型:空指针 可能原因一: 只是引用了该类,但是没有对该类进行实例化(即没有New 一下),即没有给该类分配内存,所以导致空指针: 类调用前注意要实例化,否则会导致空指针错误. 首先声明DashboardPage类型的引用,然后创建DashboardPage类型的对象,然后访问DashboardPage 类中的menuDashboardPage 属性 public static DashboardPage dashboard; helper = new TestHelper(); d

java代码走查审查规范

分类 重要性 检查项 备注 命名         重要 命名规则是否与所采用的规范保持一致? 成员变量,方法参数等需要使用首字母小写,其余单词首字母大写的命名方式,禁止使用下划线(_)数字等方式命名不要出现局部变量,成员变量大写字母开头等问题   一般 是否遵循了最小长度最多信息原则? 各种命名尽可能短,表意准确,除2代替‘to’,4代替‘for’外,不建议使用数字在命名中   重要 has/can/is前缀的函数是否返回布尔型? 成员变量,方法参数,局部变量等为布尔型时,如果出现has/can

Java8新特性之Optional

空指针异常一直是困扰Java程序员的问题,也是我们必须要考虑的.当业务代码中充满了if else判断null 的时候程序变得不再优雅,在Java8中提供了Optional类为我们解决NullPointerException. 我们先来看看这段代码有什么问题? 1 2 3 4 5 6 7 8 9 class User {     String name;     public String getName() {         return name;     } } public static

关于垃圾回收的一些基本原理及技术解析

关于垃圾回收的一些基本原理及技术解析 什么是垃圾,为什么要垃圾回收? 垃圾回收是很大一块,在java虚拟机一些资料描述中,jvm大致干三件大事儿,1>加载class 2>分配存储空间 3>执行垃圾回收:可见垃圾回收在高级语言中所占的分量.(不好意思,扯远了~),简单点儿说就是:在程序运行时刻,产生的一直未能删除的或不能被引用的对象数据称之为垃圾,如果一直未能通过有效的方式回收会导致内存泄露(通俗点就是内存撑爆了). 关于人工回收的一些问题: 在C或C++语言中,程序员可显示地安排数据回收

CVE-2017-0004相关lsass拒绝服务漏洞杂谈

昨天微软更新的补丁对lsass服务中的一处拒绝服务漏洞进行了修补,由于是远程拒绝服务漏洞遂决定看看(毕竟这种类型的这十几年也没出几个).补丁解压之后可以发现这次更新修改了大量的dll(可以用expand.exe,原因么,用了就知道哈哈),lsass.exe本身没有修改 可能是运气好吧,我当时直接选了lsasrv这个dll,事实证明运气不错. 可以看到这个dll是本地密码相关的动态链接库. 通过binbiff对比可以发现确实有不少修改的地方. 因此昨天都在看这个dll的补丁对比,当时找到一些可疑的

虚拟机类加载机制——类加载时机

由于道行不够深,所以此篇类加载机制的讲解主要来自于<深入理解Java虚拟机——JVM高级特性与最佳实践>的第7章 虚拟机类加载机制. 在前面<初识Java反射>中我们在开头提到要了解Java反射,就得要了解虚拟机的类加载机制.在这里,我们来试着窥探一下何为类加载. “虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验,类型的加载.连接和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制.”这句话确实读着好懂,但到底类加载做了什么呢?我们都知道

算法导论学习---红黑树具体解释之插入(C语言实现)

前面我们学习二叉搜索树的时候发如今一些情况下其高度不是非常均匀,甚至有时候会退化成一条长链,所以我们引用一些"平衡"的二叉搜索树.红黑树就是一种"平衡"的二叉搜索树,它通过在每一个结点附加颜色位和路径上的一些约束条件能够保证在最坏的情况下基本动态集合操作的时间复杂度为O(nlgn).以下会总结红黑树的性质,然后分析红黑树的插入操作,并给出一份完整代码. 先给出红黑树的结点定义: #define RED 1 #define BLACK 0 ///红黑树结点定义,与普通