【发布时间】:2015-06-23 13:59:05
【问题描述】:
我已经更新了我的 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,我遇到了几个问题/困惑:
我创建的 armv7 APK 现在已从中等的 8MB 膨胀到 28MB! www 文件夹是相同的 - 它是否有可能在生成的 APK 中复制这些?如果不是,为什么这么大?
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 不会取代我当前的应用程序实时版本!
- Gradle 选项 - 我如何设置这些!?好像有两个地方。我可以:
运行以下命令(我将解释第(4)点中的额外标志)
cordova build android --gradle --release --versionCode=49120 --gradleArg=PcdvBuildMultipleApks=false
或者
创建一个名为 gradle.properties 的文件,并在其中放置以下两个属性:
cdvBuildMultipleApks=false
cdvVersionCode=49120
这一点与 (2) 和 (3) 有点相关 - 但如果我可以设置这两个选项,我想我可以克服上面解释的两个问题!虽然另一方面,文档状态默认
cdvBuildMultipleApks设置为 false,但它不是 - 在 CordovaLib 中,如果它为空,gradle 构建文件将其设置为 true - 我在这里遗漏了一些明显的东西吗?最后一点和问题!如果我运行
cordova build android这将使用 gradle 构建我的项目 - 好!如果我然后打开 Android Studio 和我的项目,每当我导出签名的 APK 时,它也会通过一些 gradle 脚本运行 - 这两个构建过程是否相同?我需要运行cordova build还是 Android Studio 基本上为我运行它?
一个很长的话题,但我认为 cordova-android@4.0.0 和 gradle 只是一些初期问题,所以如果你能澄清一下,那将不胜感激。
【问题讨论】:
-
好吧,顺便说一句,我可以看到 Crosswalk 运行时将 APK 膨胀到 > 20MB (crosswalk-project.org/documentation/about/faq.html)。那么答案是(1)。但我可以做一些关于其余点的说明:)。
标签: android cordova android-studio gradle