PhoneGap Build:最有可能 config.xml Android 崩溃

PhoneGap Build: Most likely config.xml for Android to crash

抱歉,这个问题很笼统。客户想要隐私。 但让我解释一下:

代码在 iOS 和 Android 的浏览器中完美运行。 iOS (.ipa) 版本运行起来也很迷人。

但是 Android 版本 (.apk) 在启动应用程序时不知何故崩溃了。由于 HTML 通常不会这样做(并且不会使浏览器崩溃),我想它必须对配置做一些事情。

这是config.xml

<?xml version="1.0" encoding="UTF-8"?>
<widget xmlns = "http://www.w3.org/ns/widgets"
    xmlns:gap = "http://phonegap.com/ns/1.0"
    xmlns:android = "http://schemas.android.com/apk/res/android"
    id        = "com.***.***"
    versionCode=""
    version   = "">
    <name>***</name>
    <description>******</description>
    <author href="http://www.***.com" email="info@***.com">***</author>
    <feature name="http://api.phonegap.com/1.0/network" />
    <preference name="phonegap-version" value="cli-6.3.0" />
    <preference name="android-build-tool" value="gradle" />
    <preference name="orientation" value="default" />
    <preference name="fullscreen" value="false" />
    <preference name="target-device" value="universal" />
    <preference name="webviewbounce" value="true" />
    <preference name="prerendered-icon" value="false" />
    <preference name="stay-in-webview" value="true" />
    <preference name="ios-statusbarstyle" value="black-opaque" />
    <preference name="detect-data-types" value="true" />
    <preference name="exit-on-suspend" value="true" />
    <preference name="show-splash-screen-spinner" value="true" />
    <preference name="auto-hide-splash-screen" value="true" />
    <preference name="FadeSplashScreen " value="true" />
    <preference name="EnableViewportScale" value="false" />
    <preference name="MediaPlaybackRequiresUserAction" value="false" />
    <preference name="AllowInlineMediaPlayback" value="true" />
    <preference name="BackupWebStorage" value="local" />
    <preference name="TopActivityIndicator" value="white" />
    <preference name="KeyboardDisplayRequiresUserAction" value="true" />
    <preference name="KeyboardShrinksView " value="true" />
    <preference name="HideKeyboardFormAccessoryBar" value="true" />
    <preference name="SuppressesIncrementalRendering" value="false" />
    <preference name="windows-identity-name" value="" />
    <preference name="android-installLocation" value="auto" />
    <preference name="SplashScreenDelay" value="2000" />
    <preference name="ErrorUrl" value="null" />
    <preference name="BackgroundColor" value="0x000000" />
    <preference name="DisallowOverscroll" value="true" />
    <preference name="LoadingDialog" value="," />
    <preference name="LoadUrlTimeoutValue" value="null" />

    <icon src="icon.png" />
    <splash src="splash.png" />


    <platform name="ios">

        <icon src="res/icon/ios/icon.png" width="57" height="57" />
        <icon src="res/icon/ios/icon@2x.png" width="114" height="114" />
        <icon src="res/icon/ios/icon-small.png" width="29" height="29" />
        <icon src="res/icon/ios/icon-small@2x.png" width="58" height="58" />
        <icon src="res/icon/ios/icon-40.png" width="40" height="40" />
        <icon src="res/icon/ios/icon-40@2x.png" width="80" height="80" />
        <icon src="res/icon/ios/icon-50.png" width="50" height="50" />
        <icon src="res/icon/ios/icon-50@2x.png" width="100" height="100" />
        <icon src="res/icon/ios/icon-60.png" width="60" height="60" />
        <icon src="res/icon/ios/icon-60@2x.png" width="120" height="120" />
        <icon src="res/icon/ios/icon-60@3x.png" width="180" height="180" />
        <icon src="res/icon/ios/icon-72.png" width="72" height="72" />
        <icon src="res/icon/ios/icon-72@2x.png" width="144" height="144" />
        <icon src="res/icon/ios/icon-76.png" width="76" height="76" />
        <icon src="res/icon/ios/icon-76@2x.png" width="156" height="156" />

        <splash src="res/splash/ios/Default-Portrait-763@3x.png" width="1242" height="2208" /> 
        <splash src="res/splash/ios/Default-Landscape-763@3x.png" width="2208" height="1242" /> 
        <splash src="res/splash/ios/Default-667h@2x.png" width="750" height="1334" /> 
        <splash src="res/splash/ios/Default-568h@2x.png" width="640" height="1136" /> 
        <splash src="res/splash/ios/Default-Landscape.png" width="1024" height="768" />
        <splash src="res/splash/ios/Default-Landscape@2x.png" width="2048" height="1536" /> 
        <splash src="res/splash/ios/Default-Portrait.png" width="768" height="1024" /> 
        <splash src="res/splash/ios/Default-Portrait@2x.png" width="1536" height="2048" /> 
        <splash src="res/splash/ios/Default.png" width="320" height="480" /> 
        <splash src="res/splash/ios/Default@2x.png" width="640" height="960" /> 

    </platform>

    <platform name="android">

        <icon src="res/icon/android/ldpi.png" qualifier="ldpi" />
        <icon src="res/icon/android/mdpi.png" qualifier="mdpi" />
        <icon src="res/icon/android/hdpi.png" qualifier="hdpi" />
        <icon src="res/icon/android/xhdpi.png" qualifier="xhdpi" />
        <icon src="res/icon/android/xxhdpi.png" qualifier="xxhdpi" />
        <icon src="res/icon/android/xxxhdpi.png" qualifier="xxxhdpi" />

        <splash src="res/splash/android/port-ldpi.png" qualifier="port-ldpi" />
        <splash src="res/splash/android/port-mdpi.png" qualifier="port-mdpi" />
        <splash src="res/splash/android/port-hdpi.png" qualifier="port-hdpi" />
        <splash src="res/splash/android/port-xhdpi.png" qualifier="port-xhdpi" />
        <splash src="res/splash/android/port-xxhdpi.png" qualifier="port-xxhdpi" />
        <splash src="res/splash/android/port-xxxhdpi.png" qualifier="port-xxxhdpi" />
        <splash src="res/splash/android/land-ldpi.png" qualifier="land-ldpi" />
        <splash src="res/splash/android/land-mdpi.png" qualifier="land-mdpi" />
        <splash src="res/splash/android/land-hdpi.png" qualifier="land-hdpi" />
        <splash src="res/splash/android/land-xhdpi.png" qualifier="land-xhdpi" />
        <splash src="res/splash/android/land-xxhdpi.png" qualifier="land-xxhdpi" />
        <splash src="res/splash/android/land-xxxhdpi.png" qualifier="land-xxxhdpi" />

    </platform>

<!--
    <platform name="winphone">
    </platform>
-->

    <access origin="www.***.***" subdomains="true" />
</widget>

谢谢!

编辑:这是来自 Android Studio

的错误日志
22867-22867/com.***.*** E/AndroidRuntime﹕ FATAL EXCEPTION: main
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.***.***/com.***.***.***}: java.lang.NumberFormatException: Invalid long: "null"
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
            at android.app.ActivityThread.access0(ActivityThread.java:130)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:4745)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.NumberFormatException: Invalid long: "null"
            at java.lang.Long.invalidLong(Long.java:125)
            at java.lang.Long.parse(Long.java:362)
            at java.lang.Long.decode(Long.java:176)
            at org.apache.cordova.CordovaPreferences.getInteger(CordovaPreferences.java:78)
            at org.apache.cordova.CordovaWebViewImpl.loadUrlIntoView(CordovaWebViewImpl.java:146)
            at org.apache.cordova.CordovaActivity.loadUrl(CordovaActivity.java:220)
            at com.***.***.***.onCreate(***.java:32)
            at android.app.Activity.performCreate(Activity.java:5008)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
            at android.app.ActivityThread.access0(ActivityThread.java:130)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:4745)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
            at dalvik.system.NativeStart.main(Native Method)

在 Naitik 的可爱帮助下,我终于找到了恶意行。但是我没有一行一行地删掉然后上传到Adobe然后下载等等,我通过删除一半的行来节省了很多时间。如果测试结果为阳性,我将阳性的一半分成两半,对每一半进行测试,依此类推,直到我可以将范围缩小到以下行:

<preference name="LoadUrlTimeoutValue" value="null" />

已删除。 没想到它在那里,但现在它起作用了。感谢所有帮助过的人!