【发布时间】:2015-01-27 21:52:32
【问题描述】:
所以这在 iOS 中似乎可以正常工作,但在 Android 中,当我创建控制器并通过按下按钮打开它的视图时。
这是我正在调用的代码:
function goToWebView(){
win.close();
var test = Alloy.createController('web').getView();
test.open();
}
...
button.addEventListener('click',function(e)
{
Ti.API.info("Button clicked!")
goToWebView(); //<-- exceptions start here, only on Android
});
它给出了这些例外:
(干净的格式:http://pastebin.com/8f6cCh1X)
[ERROR] : TiApplication: (main) [4929,5505] 发送事件:线程异常:main msg:java.lang.NullPointerException: 尝试调用虚拟方法 'void org.appcelerator.titanium.TiBaseActivity.addOnLifecycleEventListener( org.appcelerator.titanium.TiLifecycle$OnLifecycleEvent)' 在空对象引用上;钛 3.4.1,2014/11/13 13:33,5982e8f [错误]:TiApplication:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“void org.appcelerator.titanium.TiBaseActivity.addOnLifecycleEventListener(org.appcelerator.titanium.TiLifecycle$OnLifecycleEvent)” [错误]:TiApplication:在 ti.modules.titanium.ui.WebViewProxy.createView(WebViewProxy.java:83) [错误]:TiApplication:在 org.appcelerator.titanium.proxy.TiViewProxy.handleGetView(TiViewProxy.java:483) [错误]:TiApplication:在 org.appcelerator.titanium.proxy.TiViewProxy.handleMessage(TiViewProxy.java:225) [错误]:TiApplication:在 ti.modules.titanium.ui.WebViewProxy.handleMessage(WebViewProxy.java:198) [错误]:TiApplication:在 android.os.Handler.dispatchMessage(Handler.java:98) [错误]:TiApplication:在 android.os.Looper.loop(Looper.java:135) [错误]:TiApplication:在 android.app.ActivityThread.main(ActivityThread.java:5221) [错误]:TiApplication:在 java.lang.reflect.Method.invoke(本机方法) [错误]:TiApplication:在 java.lang.reflect.Method.invoke(Method.java:372) [错误]:TiApplication:在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) [错误]:TiApplication:在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
如果我从超时调用 goToWebView() 也会得到相同的异常。如果我不从按钮事件或某种回调中调用它,它在 Android 中有效,但如果它在回调中,它会给出这些异常。
我能做什么?
【问题讨论】:
-
你能提供你正在打开的网络文件的视图和控制器吗?
标签: java android exception titanium titanium-alloy