【问题标题】:cordova build --release android always picks the highest api levelcordova build --release android 总是选择最高的 api 级别
【发布时间】:2015-07-24 01:24:24
【问题描述】:

我正在尝试使用 ionicframework 为 android 构建我的 cordova 应用程序。我已将目标 API 级别设置为 16(我从 Android SDK 管理器安装了该级别),但它总是以某种方式获取级别 21。

在项目/config.xml 中:

 <preference name="android-targetSdkVersion" value="16"/>

在platforms/android/AndroidManifest.xml中,显示相同:

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

但运行 cordova build --release android 我得到:

-build-setup:
[getbuildtools] Using latest Build Tools: 22.0.0
     [echo] Resolving Build Target for OpsVedaMobile...
[gettarget] Project Target:   Android 5.0.1
[gettarget] API level:        21

我怀疑我缺少更多设置,希望得到帮助。我使用了来自this ionic doc的操作方法

ionic:1.0.0.rc-5,ionic CLI:1.3.22,cordova:5.0.0,节点:0.10.36 - 在 Windows7 上

--编辑

似乎目标级别根本不重要。我现在想知道它是如何/在哪里变得重要的。

【问题讨论】:

    标签: android cordova ionic-framework


    【解决方案1】:

    所以这段xml做了两件事,设置android应用的最低api版本,设置目标,显然是因为他们的名字。

    所以 api 10 是 android 2.3,我们已经放弃了对它的支持。所以我们可以把它提升到 14 或 android 4.0

    Api 19 是 4.4,这一切都很好。

    所以这些数字是cordova 制作的默认项目结构的一部分。您可以创建一个挂钩,在添加项目后,它将默认 api 级别更改为 14 和 19,而不是手动执行。

    但要更改它,请转到platforms/android/android.xml,如果你编辑它,你应该很好。 (要么) 更改前:

    ] android 更新项目 --subprojects --path "platforms/android" --target android-19 --library "CordovaLib"

    我把它改成了:

    ] android 更新项目 --subprojects --path "platforms/android" --target android-14 --library "CordovaLib"

    然后按照您的建议修改 AndroidManifest.xml 文件,现在所有调试状态都为 14 级,并且已编译。我刚刚又给我的朋友发了一份副本。我们会看看它是否有效!

    【讨论】:

    • 在我的系统中我没有platforms/android/android.xml。但我会尝试你提到的钩子
    • 你用的是mac还是windows?
    【解决方案2】:

    在最新的离子框架中,您可以通过更改来更改目标

    ion1/platforms/android/AndroidManifest.xml

    把22改成16这两个文件

    ion1/platforms/android/project.properties

    ion1/platforms/android/CordovaLib/project.properties

    ion1 = 我的项目基础文件夹

    【讨论】:

    • 是的,这可能适用于一个实例,但如果您可以在每次将平台删除/添加到项目时配置您想要定位的版本,那就太好了。
    • 虽然这不适用于 23 及其新的权限方法。
    【解决方案3】:
    npm install -g cordova 
    

    上面的命令总是安装最新的cordova-android-version,所以android-target是最新的。所以我们可以通过安装合适的cordova版本来解决上述问题。

    您可以使用此命令npm install -g cordova@5.0.0 安装适当版本的cordova,其中5.0.0 是cordova-android-version。可以使用以下命令查看所有版本的cordova。

    npm view cordova versions
    

    4.1.X(cordova-android Version) 支持14-22(API级别)和

    5.X.X(cordova-android Version) 支持14-23(API级别)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-12
      • 1970-01-01
      • 1970-01-01
      • 2019-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多