【发布时间】:2011-08-18 11:39:30
【问题描述】:
所以我正在尝试与 Android 建立 HTTPS 连接,使用客户端证书进行验证。我已将此证书导入 BKS 商店,并插入到我的 res/raw 中。
一切都好。
但是,当我开始运行时,我得到一个常量 NullPointerException。
对于上下文,我有一个连接类,扩展应用程序,基本构造函数应该只是将证书作为 InputStream 打开并准备好。当我来建立连接时,这将被使用。如下(略):
public class RCPHandshake2 extends Application {
InputStream in;
public RCPHandshake2(){
super.onCreate();
in = getResources().openRawResource(R.raw.test);
}
}
这个构建运行良好,但是,当我们到达那里(实际版本中的第 36 行)时,堆栈跟踪是这样的:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.<company>.t1v2/com.<company>.t1v2.SplashAndText}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
at android.app.ActivityThread.access$2200(ActivityThread.java:119)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4363)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at android.content.ContextWrapper.getResources(ContextWrapper.java:80)
at com.<company>.<component>.RCPHandshake2.<init>(RCPHandshake2.java:36)
at com.<company>.t1v2.SplashAndText.onCreate(SplashAndText.java:43)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)
... 11 more
这似乎出乎意料。有没有人遇到过类似的情况?
永恒的爱和感激,以换取比我更有经验的人的任何解决方案/提示/提示/指针!
PS - 基本上,即使我知道原始资源在那里,并且它出现在 R.java 中,这似乎认为它无法访问它?是这样吗,还是我错过了一些令人眼花缭乱的东西?
【问题讨论】:
标签: android resources nullpointerexception inputstream