我正在将BOX.COM
与我的android应用程序集成在一起,因此我在我的应用程序中使用了BoxAndroidLibraryV2
和BoxJavaLibraryV2
。我可以运行示例android应用程序BoxSDKSample
。因此我从示例应用程序中复制了必要的类和布局。现在,我收到如下错误消息。
07-23 15:51:02.230: E/AndroidRuntime(14857): Process: com.filenet.ecm, PID: 14857
07-23 15:51:02.230: E/AndroidRuntime(14857): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.filenet.ecm/com.box.boxandroidlibv2.activities.OAuthActivity} : java.lang.NullPointerException: Attempt to invoke virtual method 'void com.box.boxandroidlibv2.views.OAuthWebView.setAllowShowingRedirectPage(boolean)' on a null object reference
07-23 15:51:02.230: E/AndroidRuntime(14857): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2411)
07-23 15:51:02.230: E/AndroidRuntime(14857): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2474)
07-23 15:51:02.230: E/AndroidRuntime(14857): at android.app.ActivityThread.access$800(ActivityThread.java:144)
07-23 15:51:02.230: E/AndroidRuntime(14857): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1359)
07-23 15:51:02.230: E/AndroidRuntime(14857): at android.os.Handler.dispatchMessage(Handler.java:102)
07-23 15:51:02.230: E/AndroidRuntime(14857): at android.os.Looper.loop(Looper.java:155)
07-23 15:51:02.230: E/AndroidRuntime(14857): at android.app.ActivityThread.main(ActivityThread.java:5696)
07-23 15:51:02.230: E/AndroidRuntime(14857): at java.lang.reflect.Method.invoke(Native Method)
07-23 15:51:02.230: E/AndroidRuntime(14857): at java.lang.reflect.Method.invoke(Method.java:372)
07-23 15:51:02.230: E/AndroidRuntime(14857): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1029)
07-23 15:51:02.230: E/AndroidRuntime(14857): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:824)
07-23 15:51:02.230: E/AndroidRuntime(14857): Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.box.boxandroidlibv2.views.OAuthWebView.setAllowShowingRedirectPage(boolean)' on a null object reference
07-23 15:51:02.230: E/AndroidRuntime(14857): at com.box.boxandroidlibv2.activities.OAuthActivity.createOAuthWebView(OAuthActivity.java:78)
07-23 15:51:02.230: E/AndroidRuntime(14857): at com.box.boxandroidlibv2.activities.OAuthActivity.startOAuth(OAuthActivity.java:66)
07-23 15:51:02.230: E/AndroidRuntime(14857): at com.box.boxandroidlibv2.activities.OAuthActivity.onCreate(OAuthActivity.java:52)
07-23 15:51:02.230: E/AndroidRuntime(14857): at android.app.Activity.performCreate(Activity.java:5958)
07-23 15:51:02.230: E/AndroidRuntime(14857): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1129)
07-23 15:51:02.230: E/AndroidRuntime(14857): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2364)
07-23 15:51:02.230: E/AndroidRuntime(14857): ... 10 more
请建议我解决此问题。
带着敬意,
Babu Kaliyamoorthy。
最佳答案
就像注释中所说的那样,如果没有更多代码,我们真的无法知道什么地方出了问题。但是仔细看一下NullPointerException,这似乎是OAuth和WebViews的一个非常普遍的问题。您可以看到OAuthWebView最有可能是空对象。这意味着您可能需要创建Web View ,因为您可能从未创建过该 View 。
您所说的示例可能已将Web View 内置到Android .xml文件或其他 Activity 中,或者您忘记了该代码。只需仔细检查一下,看看是否可以发布代码。有关在何处创建OAuthWebView的邮政编码。设置自定义网络 View OAuthWebView后,该错误似乎消失了。java.lang.NullPointerException: Attempt to invoke virtual method 'void com.box.boxandroidlibv2.views.OAuthWebView.setAllowShowingRedirectPage(boolean)' on a null object reference
当您使Attempt to invoke virtual method -blahblahblah- on a null object reference
向后看时,看看最后一个函数(又称虚拟方法)是什么(在您的情况下为setAllowingShowingRedirectPage(boolean)
),而空对象是调用该函数的对象OAuthWebView
。
这在您的堆栈跟踪中发生了两次,因此很可能会导致创建或管理OAuthWebView
实例的问题。