- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我更新了我的 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 将不会取代我应用程序的当前实时版本!
运行以下命令(我将在第(4)点解释额外的标志)
cordova build android --gradle --release --versionCode=49120 --gradleArg=PcdvBuildMultipleApks=false
或者
创建一个名为 gradle.properties 的文件并在其中放置以下两个属性:
cdvBuildMultipleApks=false
cdvVersionCode=49120
这一点与 (2) 和 (3) 有点联系 - 但如果我可以设置这两个选项,我想我可以克服上面解释的两个问题!尽管另一方面,文档声明默认 cdvBuildMultipleApks
设置为 false,但它不是 - 在 CordovaLib 中,如果它为 null,gradle 构建文件将其设置为 true - 我错过了什么很明显吗?
最后一点和问题!如果我运行 cordova build android
这将使用 gradle 构建我的项目 - 很好!如果我随后打开 Android Studio 和我的项目,每当我导出签名的 APK 时,它也会运行一些 gradle 脚本——这两个构建过程是否相同?我需要运行 cordova build
还是 Android Studio 基本上为我运行它?
一个很长的话题,但我认为 cordova-android@4.0.0 和 gradle 只是一些初期的问题,所以如果你能澄清一下,我们将不胜感激。
最佳答案
cdvVersionCode
覆盖从命令行运行构建时,您可以使用以下命令覆盖 cdvVersionCode
cordova build android -- --gradleArg=-PcdvVersionCode=49120
当指定 --gradleArg 时,您很可能在 Pcdv...
之前错过了 -
带有附加文件的第二种方法也是可行的。选择适合您的任何内容。
要设置多个 Gradle 选项,请使用
cordova build android -- --gradleArg=-PcdvVersionCode=49120 --gradleArg=-PcdvBuildMultipleApks=true
cordova build android
和Android Studio 都使用Gradle 来构建Cordova 项目。它们可以互换。关于android - Android Studio 中的 cordova-android@4.0.0 和 gradle 配置不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29686968/
今天有小伙伴给我留言问到,try{...}catch(){...}是什么意思?它用来干什么? 简单的说 他们是用来捕获异常的 下面我们通过一个例子来详细讲解下
我正在努力提高网站的可访问性,但我不知道如何在页脚中标记社交媒体链接列表。这些链接指向我在 facecook、twitter 等上的帐户。我不想用 role="navigation" 标记这些链接,因
说现在是 6 点,我有一个 Timer 并在 10 点安排了一个 TimerTask。之后,System DateTime 被其他服务(例如 ntp)调整为 9 点钟。我仍然希望我的 TimerTas
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我就废话不多说了,大家还是直接看代码吧~ ? 1
Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。 核心功能 Mav
我是一名优秀的程序员,十分优秀!