Android Studio 中的 cordova-android@4.0.0 和 gradle 配置不起作用

cordova-android@4.0.0 and gradle configuration in Android Studio not working

我已经更新了我的 Cordova 项目,所以它现在使用 cordova-android@4.0.0。到目前为止看起来不错,但我无法弄清楚创建 APK 需要知道的一些事情。

最新版本利用 gradle 并创建了一个 Android Studio 兼容项目 - 太棒了!此外,您可以使用我决定需要的新 Crosswalk WebView,因为我发现旧设备上的问题越来越多(通常是 Android KitKat - 4.3 及更低版本)。所以 Crosswalk 似乎已经克服了我遇到的问题,并且速度有了明显的提高。

无论如何,关于 cordova-android@4.0.0/gradle/Android Studio:

我一直有几个 issues/confusion
  1. 我创建的 armv7 APK 现在已经从 8MB 增加到 28MB! www 文件夹是相同的 - 是否有可能在生成的 APK 中复制这些文件夹?如果不是,为什么这么大?

  2. versionCode - 应用程序版本设置在 config.xml - 我的设置为 4.9.1.2。当 cordova 生成 versionCode(在 AndroidManifest.xml 中使用)时 - Cordova 有一个奇怪的解析规则,它替换了句点“。”带有'0' - 但仅适用于前三个值。因此 4.9.1.2 变为 40902。在现有版本的 Cordova 中,您可以手动编辑 AndroidManifest.xml 并提供您自己的值 - Eclipse 构建不会覆盖它。

我感觉 Gradle 或 Android Studio 正在覆盖它 - 我无法锻炼。请有人解释一下,因为我需要解决这个问题才能上线,否则 versionCode 将不会取代我应用程序的当前实时版本!

  1. Gradle 选项 - 我该如何设置这些!?好像有两个地方。我可以:

运行以下命令(我会在第(4)点解释额外的标志)

cordova build android --gradle --release --versionCode=49120 --gradleArg=PcdvBuildMultipleApks=false

创建一个名为 gradle.properties 的文件并在其中放置以下两个属性:

cdvBuildMultipleApks=false
cdvVersionCode=49120

两种方法解释:https://cordova.apache.org/docs/en/edge/guide_platforms_android_tools.md.html#Android%20Shell%20Tool%20Guide_building_with_gradle

  1. 这一点与 (2) 和 (3) 有点联系 - 但如果我可以设置这两个选项,我想我可以克服上面解释的两个问题!尽管另一方面,文档说明默认情况下 cdvBuildMultipleApks 设置为 false,但它不是 - 在 CordovaLib 中,gradle 构建文件将其设置为 true 如果它为 null - 我错过了吗这里有明显的东西吗?

  2. 最后一点和问题!如果我 运行 cordova build android 这会用 gradle 构建我的项目 - 很好!如果我随后打开 Android Studio 和我的项目,每当我导出签名的 APK 时,它也会 运行 通过一些 gradle 脚本 - 这两个构建过程是否相同?我需要 运行 cordova build 还是 Android Studio 本质上 运行 对我有用?

一个长线程,但我认为 cordova-android@4.0.0 和 gradle 只是一些初期问题,所以如果你能澄清一下,我们将不胜感激。

  1. Crosswalk 包含编译版本的浏览器,这就是 APK 大小增加 12MB 的原因。
  2. 版本代码由 Android Studio 计算,但可以被 Gradle 属性 cdvVersionCode
  3. 覆盖
  4. 当 运行 从命令行构建时,您可以使用以下命令覆盖 cdvVersionCode

    cordova build android -- --gradleArg=-PcdvVersionCode=49120
    

当指定 --gradleArg

时,您很可能在 Pcdv... 之前错过了 -

使用附加文件的第二种方法也是可行的。选择适合你的任何东西。

  1. 要设置多个 Gradle 选项,请使用

     cordova build android -- --gradleArg=-PcdvVersionCode=49120 --gradleArg=-PcdvBuildMultipleApks=true
    
  2. cordova build android 和Android Studio 都使用Gradle 来构建Cordova 项目。它们都可以互换。

您还可以通过以下方式明确设置版本代码:

<widget android:versionCode="123">

在你的 config.xml.

为了帮助缓解 Crosswalk 导致的 APK 大小增加,您可以选择仅将 Crosswalk 用于 L Android 之前的版本(或者如果您认为 webview 足够好,则用于 pre-kitkat)。由于 L 有一个可更新的 webview,它几乎可以肯定使用与 Crosswalk 捆绑包相同或更新的 Chromium 版本。 plugin README 中的详细信息,但为方便起见也粘贴在这里:

要构建支持 Crosswalk 的 apk,请添加 crosswalk 插件和 运行:

$ cordova build --release

要构建 System-webview apk,删除人行横道插件和 运行:

$ cordova build --release -- --android-minSdkVersion=21