当前位置:编程学习 > wap >>

java.lang.RuntimeException: Unable to create application * : java.lang.NullPoint

项目在google play上被报了一个错误,日志如下:

java.lang.RuntimeException: Unable to create application com.mdtv.phware.MyAPP: java.lang.NullPointerException
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3288)
at android.app.ActivityThread.access$2200(ActivityThread.java:117)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:980)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3735)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:662)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at com.mdtv.phware.MTEngine.initConstant(MTEngine.java:792)
at com.mdtv.phware.MTEngine.initialize(MTEngine.java:759)
at com.mdtv.phware.MyAPP.onCreate(MyAPP.java:23)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:969)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3285)
... 10 more


追了下代码,空指针对应的代码是:




从代码来看,应该是getFilesDir返回了null。为什么这个会返回null,求解释。

另外,这个项目是运行在android2.3以下(包括2.3)的设备上的。 --------------------编程问答-------------------- 查了下android2.3的源码解释,getFilesDir有可能会返回null

--------------------编程问答-------------------- initConstant(Context c)
你传一个Activity对象进去,不要单纯的Context。 --------------------编程问答--------------------
引用 2 楼 ncepu307 的回复:
initConstant(Context c)
你传一个Activity对象进去,不要单纯的Context。



这里传的Context是Application --------------------编程问答--------------------
引用 3 楼 u011993617 的回复:
Quote: 引用 2 楼 ncepu307 的回复:

initConstant(Context c)
你传一个Activity对象进去,不要单纯的Context。



这里传的Context是Application


传个Acitivty对象进去试试 --------------------编程问答--------------------
引用 4 楼 ncepu307 的回复:
Quote: 引用 3 楼 u011993617 的回复:

Quote: 引用 2 楼 ncepu307 的回复:

initConstant(Context c)
你传一个Activity对象进去,不要单纯的Context。



这里传的Context是Application


传个Acitivty对象进去试试


你遇到过这个问题?   这个问题在我们这里没办法复现,之前我们在android2.3设备上测试没出现过这个问题。android2.3以下的设备没测过(没有2.3以下的设备),不知道是不是2.3以下的设备上报出来的。

源码中对getFilesDirs方法的描述中提到,如果sd没有挂载,这个方法会返回null,我在想是不是这个原因。

你有何想法? --------------------编程问答-------------------- 你这个应用是安装到了sd卡中吗?
如果是的话,那很有可能就是这个原因,sd没有挂载 --------------------编程问答--------------------
引用 6 楼 ncepu307 的回复:
你这个应用是安装到了sd卡中吗?
如果是的话,那很有可能就是这个原因,sd没有挂载


不知道客户那边是不是装SD卡上的,报错是通过google play返回的。配置文件里安装位置选项是auto。

这个问题比较麻烦,我们这里看不到现象,很难判断。

另一方面,这个应用只适配android2.3系统,2.3的设备大都比较老旧,内置存储相对都比较小,很有可能用户的apk是装在外置SD上的。


这些都只是猜测而已。
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,