安装Cordova内置apk时可能导致解析错误的原因是什么?

时间:2017-03-07 22:58:13

标签: android cordova parsing

我使用Cordova将我的网络应用程序转换为apk。

该应用程序的目标设备是泰国的OTPC(每个孩子一片)平板电脑。

这些平板电脑已禁用Google Play,因此必须手动安装应用。我遵循了所有常规步骤,例如允许未知来源。

在构建应用程序的-debug版本后,它安装在我的Galaxy Tab 3V上没有问题。它也可以很容易地安装在学校常见的OTPC设备上,但另一方面我得到了着名的解析错误。

这两款设备均为Android 4.0.3。

所以我花了几个小时尝试对Cordova config.xml文件进行不同的更改,但到目前为止还没有运气。我的问题是我在黑暗中狩猎,没有迹象表明这个设备上的解析错误是什么。

有没有办法(例如通过adb安装)获取有关此特定解析错误的更多信息。

对于它的价值,这是我最新的config.xml文件。也许有人可以建议改变:

<?xml version='1.0' encoding='utf-8'?>
<widget id="io.cordova.English_Builder" version="0.9.50"  xmlns="http://www.w3.org/ns/widgets"   xmlns:cdv="http://cordova.apache.org/ns/1.0">
<icon src="www/images/formatting/e_b_icon.png" />
<name>English_Builder</name>
<description>
    English Builder helps Thai students of English to build vocabulary and skills, through competitive timed activities.
</description>
<author email="iansamit@gmail.com" href="https://github.com/Iansamit/English_Builder">
    Ian Smith
</author>
<content src="index.html" />
<plugin name="cordova-plugin-whitelist" spec="1" />
<access origin="*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<platform name="android">
    <allow-intent href="*" />
</platform>
<platform name="ios">
    <allow-intent href="itms:*" />
    <allow-intent href="itms-apps:*" />
</platform>
<plugin name="cordova-plugin-media" spec="~2.3.0" />
</widget>

2 个答案:

答案 0 :(得分:3)

感谢@Gandhi指导我解决问题。结果问题是我忽略了将android-minSdkVersionandroid-targetSdkVersion放在我的config.xml中。因此,在清单中,版本代码默认为:platformBuildVersionCode =&#34; 25&#34;,这对于4.0.3来说太高了

供参考,以下是我修订的config.xml的相关部分:

    <platform name="android">
      <allow-intent href="market:*" />
      <preference name="android-minSdkVersion" value="14" />
      <preference name="android-targetSdkVersion" value="22" />
    </platform>

答案 1 :(得分:2)

当config.XML格式不正确或XML中有特殊字符时,通常会抛出解析错误。

在这种情况下,它似乎是与Android SDK版本相关的错误。这里的问题通常是config.XML相关问题将在构建期间抛出。但在这种情况下,错误是在我忽略的安装过程中。

因此,结论是如果您在构建期间遇到与config.XML相关的解析错误,可能是由于XML格式不正确或其中包含特殊字符。如果您在安装过程中遇到解析错误,一个原因可能是android SDK兼容性问题。

更新:反编译您的apk文件并检查Android清单文件以检查任何Android SDK兼容性问题