我正在为 Android 应用程序使用 Worklight,
当我尝试添加启动画面时
public class MyApp extends WLDroidGap {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setIntegerProperty("splashscreen", R.drawable.splash);
super.loadUrl(getWebMainFilePath(),2000);
}
}
我看到启动画面,但随后出现黑屏并且应用程序崩溃 准确地说,它显示黑屏,当我点击选项按钮时,它崩溃了
当我删除“,2000”时
public class MyApp extends WLDroidGap {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setIntegerProperty("splashscreen", R.drawable.splash);
super.loadUrl(getWebMainFilePath());
}
}
我没有看到启动画面,但该应用可以正常运行。
我看到有人 talked about that in IBM forums
并且有很多博客文章都在谈论 PhoneGap 的 Android 启动画面 here和 here ,但我没有在这些帖子中看到我的问题的解决方案
这是崩溃后的应用日志:
I/SurfaceFlinger( 93): [SurfaceFlinger] frames:2, duration:2.262000, fps:0.883908
I/InputDispatcher( 246): channel '426b7be0 NavigationBar (server)' ~ finishDispatchCycle - 4.8ms since event, 3.0ms since dispatch, handled=true
E/AndroidRuntime(15615): FATAL EXCEPTION: main
E/AndroidRuntime(15615): java.lang.NullPointerException
E/AndroidRuntime(15615): at com.worklight.androidgap.WLDroidGap.onPrepareOptionsMenu(WLDroidGap.java:163)
E/AndroidRuntime(15615): at com.worklight.androidgap.WLDroidGap.onCreateOptionsMenu(WLDroidGap.java:159)
E/AndroidRuntime(15615): at android.app.Activity.onCreatePanelMenu(Activity.java:2458)
E/AndroidRuntime(15615): at com.android.internal.policy.impl.PhoneWindow.preparePanel(PhoneWindow.java:389)
E/AndroidRuntime(15615): at com.android.internal.policy.impl.PhoneWindow.onKeyDownPanel(PhoneWindow.java:770)
E/AndroidRuntime(15615): at com.android.internal.policy.impl.PhoneWindow.onKeyDown(PhoneWindow.java:1435)
E/AndroidRuntime(15615): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1824)
E/AndroidRuntime(15615): at android.view.ViewRootImpl.deliverKeyEventPostIme(ViewRootImpl.java:3492)
E/AndroidRuntime(15615): at android.view.ViewRootImpl.handleFinishedEvent(ViewRootImpl.java:3464)
E/AndroidRuntime(15615): at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2601)
E/AndroidRuntime(15615): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(15615): at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime(15615): at android.app.ActivityThread.main(ActivityThread.java:4524)
E/AndroidRuntime(15615): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(15615): at java.lang.reflect.Method.invoke(Method.java:511)
E/AndroidRuntime(15615): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:809)
E/AndroidRuntime(15615): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:576)
E/AndroidRuntime(15615): at dalvik.system.NativeStart.main(Native Method)
最佳答案
如果您使用的是 Worklight 5.0.5.x,请尝试以下操作:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.loadUrl(getWebMainFilePath()); // yes, this is an extra invocation
super.setIntegerProperty("splashscreen", R.drawable.splash);
super.loadUrl(getWebMainFilePath(), 5000);
}
如果您使用的是 Worklight 5.0.6.x,请尝试以下操作:
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
super.setIntegerProperty("splashscreen", R.drawable.splash);
super.bindBrowser(appView);
super.loadUrl(getWebMainFilePath(), 5000);
}
关于android - Android 上的 Worklight 应用程序启动画面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15496704/