42

这是一个 phonegap 3.5 / cordova 3 安卓应用。在 www/config.xml 我有:

<preference name="android-minSdkVersion" value="19">
<preference name="android-targetSdkVersion" value="19">

但是,当我构建它时,它会创建一个 AndroidManifest.xml,其中包含:

<uses-sdk android:minSdkVersion="10" android:targetSdkVersion="19" />

结果是 SDK 版本低于 19 的人可以从商店安装我的应用程序。它从哪里得到这 10 个,我该如何更改它?由于 Viewport 的怪异,我的应用程序的行为在 4.4 以下的操作系统上是可疑的,并且我已经获得了 4.2.2 用户的 1 星评价。

4

6 回答 6

68

使用旧版本的cordova CLI,我曾经手动修改AndroidManifest.xml以更改一些设置(启动模式,minsdk ...),就像您在答案中所做的那样。

并使用Cordova 3.5。有些事情开始出错,每次我构建项目时都会丢失一些更改。

现在我添加了这些行,config.xml设置会自动更新:

<platform name="android">
    <preference name="AndroidLaunchMode" value="singleTop"/>
    <preference name="android-minSdkVersion" value="14" />
    <icon src="res/android/xhdpi.png" />
    <icon src="res/android/ldpi.png" density="ldpi" />
    <icon src="res/android/mdpi.png" density="mdpi" />
    <icon src="res/android/hdpi.png" density="hdpi" />
    <icon src="res/android/xhdpi.png" density="xhdpi" />
</platform>

优点是我现在可以删除 android 平台并重新创建它而不会丢失任何设置。

由于 Phonegap 正在更新为与 cordova 内联,因此偏好设置config.xml应该适用于新版本,也许您会看到更新的手册丢失,就像发生在我身上一样......

于 2014-11-25T21:49:02.140 回答
43

STEP 1) yourapp/config.xml 文件<platform name="android">标签添加两个首选项

<platform name="android">
    <preference name="android-minSdkVersion" value="14" />
    <preference name="android-targetSdkVersion" value="19" />
</platform>

STEP 2) cordova platform rm android运行 cmd 代码

步骤 3) cordova platform add android运行 cmd 代码 检查您的 AndroidManifest.xml 文件是否如下所示

<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="19" />

一切正常 :)

于 2016-01-25T12:54:31.243 回答
23

编辑和改进答案:

要回答这个问题,最好从构建版本或 API 级别开始。API 级别是一个整数值,用于唯一标识 Android 平台版本提供的框架 API 修订版。

API Level 8 == android Platform 2.3(ginger bread)
API Level 17 == android Platform 4.2(jelly bean)

要查看 APILevel 及其 AndroidPlatform 的完整比较,请点击此处


targetSdk 仅供phonegap 使用。这告诉 phonegap 使用特定的 APILevel 来构建这个应用程序。这并不意味着限制任何用户下载您的应用程序。更像是说,“该应用程序已针对此 APILevel 进行了优化”。例子

 <preference name="android-targetSdkVersion" value="17"/> //android 4.2

此应用程序是使用 APILevel 17(即 jellyBean 或 androidPlatform4.2)构建(优化)的


另一方面,minSdk限制用户/设备。minSdk 是用户/设备对 Sdk 的最低要求。任何 APIlevel 低于 minSdk 使用的 APILevel 的设备,将无法下载此应用程序。例子:

 <preference name="android-minSdkVersion" value="11"/> //android 3.0

要下载此应用程序,设备必须至少在 android 3.0 (APILevel 11) 上运行


最后,当一起使用时:

<preference name="android-minSdkVersion" value="11"/> //android 3.0

 <preference name="android-targetSdkVersion" value="17"/> //android 4.2

此声明表示此应用针对android4.2进行了优化,最低要求为android 3.0


文档:http ://docs.build.phonegap.com/en_US/configuring_preferences.md.html#Preferences

于 2014-11-25T22:40:58.840 回答
3

对于任何来到这里寻找设置特定目标版本的方法的人,我发现了这一点:我只是遇到了同样的问题。我不得不改变目标:

项目目标。

target=android-22 这应该在两个文件中完成:

myApp/platforms/android/project.properties myApp/platforms/android/CordovaLib/project.properties

清单也应该更新:

来自塞巴斯蒂安的回答:Cordova:[错误:请安装 Android 目标:“android-21”

于 2015-05-07T13:37:26.447 回答
0

我可以通过手动编辑platforms/android/AndroidManifest.xml来解决这个问题:

<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="19" />

Phonegap文档似乎暗示此文件应继承 android-minSdkVersion 首选项的值,但必须手动更改。据我所知, android-minSdkVersion 首选项似乎没有做任何事情。

于 2014-11-25T20:43:33.610 回答
0

我通过使用 Android Studio 构建而不是使用 Cordova CLI 构建解决了这个问题。

于 2019-12-13T14:28:40.527 回答