使用 ionic 构建的混合应用程序在 android 而不是 ios 上崩溃
hybrid app built with ionic crashes on android but not ios
我正在使用 Ionic 框架和 AngularJS 构建应用程序。当我 运行 ionic 运行 android 应用程序安装然后在我的设备上崩溃。我 运行 logcat 看着崩溃发生,它正在抛出 java.lang.NumberFormatException: Invalid long: ""
有趣的是,iOS 上的应用程序 运行 非常好,它只在 android 上崩溃。
谁知道我应该寻找什么来解决这个问题?我很难找到问题,因为代码在 javascript 和 html 中,所以我找不到无效的 long 在哪里。
异常的完整日志猫
E/AndroidRuntime( 3057): FATAL EXCEPTION: main
E/AndroidRuntime( 3057): Process: com.gravityfusion.findmydriver, PID: 3057
E/AndroidRuntime( 3057): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.gravityfusion.findmydriver/com.gravityfusion.findmydriver.CordovaApp}: java.lang.NumberFormatException: Invalid long: ""
E/AndroidRuntime( 3057): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)
E/AndroidRuntime( 3057): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
E/AndroidRuntime( 3057): at android.app.ActivityThread.access0(ActivityThread.java:144)
E/AndroidRuntime( 3057): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
E/AndroidRuntime( 3057): at android.os.Handler.dispatchMessage(Handler.java:102)
E/AndroidRuntime( 3057): at android.os.Looper.loop(Looper.java:135)
E/AndroidRuntime( 3057): at android.app.ActivityThread.main(ActivityThread.java:5221)
E/AndroidRuntime( 3057): at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime( 3057): at java.lang.reflect.Method.invoke(Method.java:372)
E/AndroidRuntime( 3057): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
E/AndroidRuntime( 3057): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
E/AndroidRuntime( 3057): Caused by: java.lang.NumberFormatException: Invalid long: ""
E/AndroidRuntime( 3057): at java.lang.Long.invalidLong(Long.java:124)
E/AndroidRuntime( 3057): at java.lang.Long.decode(Long.java:142)
E/AndroidRuntime( 3057): at org.apache.cordova.CordovaPreferences.copyIntoIntentExtras(CordovaPreferences.java:139)
E/AndroidRuntime( 3057): at org.apache.cordova.CordovaActivity.loadConfig(CordovaActivity.java:240)
E/AndroidRuntime( 3057): at org.apache.cordova.CordovaActivity.onCreate(CordovaActivity.java:207)
E/AndroidRuntime( 3057): at com.gravityfusion.findmydriver.CordovaApp.onCreate(CordovaApp.java:30)
E/AndroidRuntime( 3057): at android.app.Activity.performCreate(Activity.java:5933)
E/AndroidRuntime( 3057): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
E/AndroidRuntime( 3057): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
E/AndroidRuntime( 3057): ... 10 more
~编辑
我可以使用 ionic build android
构建没有错误或警告的应用程序。
我可以在我的设备上安装该应用程序。
当我去 运行 它时,它立即崩溃。
因为错误中的这一行
at org.apache.cordova.CordovaPreferences.copyIntoIntentExtras(CordovaPreferences.java:139)
我查看了输入首选项的 config.xml 文件。我发现 iOS 默认的首选项中有几个错误,但 android 不喜欢 <preference name="BackgroundColor" value="0xffffffff"/>
<preference name="BackgroundColor" value=""/>
我正在使用 Ionic 框架和 AngularJS 构建应用程序。当我 运行 ionic 运行 android 应用程序安装然后在我的设备上崩溃。我 运行 logcat 看着崩溃发生,它正在抛出 java.lang.NumberFormatException: Invalid long: ""
有趣的是,iOS 上的应用程序 运行 非常好,它只在 android 上崩溃。 谁知道我应该寻找什么来解决这个问题?我很难找到问题,因为代码在 javascript 和 html 中,所以我找不到无效的 long 在哪里。
异常的完整日志猫
E/AndroidRuntime( 3057): FATAL EXCEPTION: main
E/AndroidRuntime( 3057): Process: com.gravityfusion.findmydriver, PID: 3057
E/AndroidRuntime( 3057): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.gravityfusion.findmydriver/com.gravityfusion.findmydriver.CordovaApp}: java.lang.NumberFormatException: Invalid long: ""
E/AndroidRuntime( 3057): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)
E/AndroidRuntime( 3057): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
E/AndroidRuntime( 3057): at android.app.ActivityThread.access0(ActivityThread.java:144)
E/AndroidRuntime( 3057): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
E/AndroidRuntime( 3057): at android.os.Handler.dispatchMessage(Handler.java:102)
E/AndroidRuntime( 3057): at android.os.Looper.loop(Looper.java:135)
E/AndroidRuntime( 3057): at android.app.ActivityThread.main(ActivityThread.java:5221)
E/AndroidRuntime( 3057): at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime( 3057): at java.lang.reflect.Method.invoke(Method.java:372)
E/AndroidRuntime( 3057): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
E/AndroidRuntime( 3057): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
E/AndroidRuntime( 3057): Caused by: java.lang.NumberFormatException: Invalid long: ""
E/AndroidRuntime( 3057): at java.lang.Long.invalidLong(Long.java:124)
E/AndroidRuntime( 3057): at java.lang.Long.decode(Long.java:142)
E/AndroidRuntime( 3057): at org.apache.cordova.CordovaPreferences.copyIntoIntentExtras(CordovaPreferences.java:139)
E/AndroidRuntime( 3057): at org.apache.cordova.CordovaActivity.loadConfig(CordovaActivity.java:240)
E/AndroidRuntime( 3057): at org.apache.cordova.CordovaActivity.onCreate(CordovaActivity.java:207)
E/AndroidRuntime( 3057): at com.gravityfusion.findmydriver.CordovaApp.onCreate(CordovaApp.java:30)
E/AndroidRuntime( 3057): at android.app.Activity.performCreate(Activity.java:5933)
E/AndroidRuntime( 3057): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
E/AndroidRuntime( 3057): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
E/AndroidRuntime( 3057): ... 10 more
~编辑
我可以使用 ionic build android
构建没有错误或警告的应用程序。
我可以在我的设备上安装该应用程序。
当我去 运行 它时,它立即崩溃。
因为错误中的这一行
at org.apache.cordova.CordovaPreferences.copyIntoIntentExtras(CordovaPreferences.java:139)
我查看了输入首选项的 config.xml 文件。我发现 iOS 默认的首选项中有几个错误,但 android 不喜欢 <preference name="BackgroundColor" value="0xffffffff"/>
<preference name="BackgroundColor" value=""/>