如何使用 Gradle 构建系统让 PhoneGap 项目在 Android Studio 中运行

Posted

技术标签:

【中文标题】如何使用 Gradle 构建系统让 PhoneGap 项目在 Android Studio 中运行【英文标题】:How to Get a PhoneGap Project to Run in Android Studio with Gradle Build System 【发布时间】:2014-01-28 15:33:16 【问题描述】:

我正在尝试设置一个新的 PhoneGap 应用程序,并使用 Gradle 构建系统在 android Studio 中运行。

目前我已经成功创建了PhoneGap项目并导入了Android Studio。一切似乎都运行良好,但我不知道如何将其移至 Gradle 构建系统,或者即使可能。

有人可以帮忙吗?

【问题讨论】:

如果你已经知道了,也可以在这里添加作为答案。你的博文看起来不错,我收藏了。 我还没弄清楚如何让它与 gradle 一起工作。我的文章是关于让它与 android studio 一起工作,但它不使用 gradle 构建系统。我什至认为我的文章不再有效,因为 android studio 有一些更新。 看起来这篇文章、@MattWhetton 的博客文章和issues.apache.org/jira/browse/CB-3445 是迄今为止关于该主题的大部分资源 【参考方案1】:

我是 Android Studio 新手,仍然习惯于 AS 项目结构和 Gradle。

使用 Cordova 4.1.2 Android Studio 1.0.1

1) 我使用 Cordova CLI 创建了应用程序:

cordova 创建 CordovaAndroidApp

cd CordovaAndroidApp

cordova平台添加android

此版本的 Cordova 创建了 build.gradle 和 settings.gradle 文件。

2) 从 Android Studio 初始屏幕中,我选择了“开始一个新的 Android Studio 项目” 在第二个屏幕上,我检查了手机和平板电脑框;在第三个屏幕上,我选择了“不添加活动”

3) 在这个新的 Android Studio 应用程序中,从左侧面板的 Project 视图中选择了顶层项目,我选择了 File -> Import Project。在弹出的“select Eclipse or Gradle Project to Import”中,我选择了Cordova项目目录,向下点击到platforms/android目录,选择build.gradle文件,然后OK。

我能够毫无问题地构建和运行基本的 Cordova 项目(只是启动屏幕)。

【讨论】:

【参考方案2】:

我设法做到了。

您需要 Android Studio 和 Eclipse ADT 版本,以及 Cordova/PhoneGap 全部设置。

    将 Cordova 项目导入 Eclipse。 转到文件 -> 导出... -> 生成 Gradle 构建文件。 单击“下一步”跳过“改为导入?”屏幕。

    选择要导出的 Android 项目和 CordovaLib 项目,然后单击下一步。

    完成后,打开 Android Studio。

    转到文件 -> 导入项目... 选择 Eclipse 生成的 Android 主项目的 build.gradle 文件,然后单击“确定”。

    导入后,您可能会收到一些关于正在使用的较新 gradle 版本的警告,只需检查您的设置,它似乎可以自行解决。

    此时,您应该有一个作为主项目的项目结构,但将 CordovaLib 作为模块。

现在你可以在主项目目录中打开 build.gradle 文件并将其更改为:

buildscript 
    repositories 
        mavenCentral()
    
    dependencies 
        classpath 'com.android.tools.build:gradle:0.11.+'
    


apply plugin: 'android'

android 
    compileSdkVersion 19
    buildToolsVersion '19.1.0'

    sourceSets 
        main 
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        
    


dependencies 
    compile fileTree(dir: 'libs', include: '*.jar')
    compile project(':CordovaLib')
    compile 'com.android.support:appcompat-v7:19.+'

您现在应该能够说服 Android Studio 进行编译了。

一个额外的提示是创建一个脚本来运行“cordova prepare”并将其作为外部工具添加到模块的运行配置中。 确保在将 APK 部署到设备或模拟器之前同步整个项目。

【讨论】:

供参考,更完整的gradle.config在这里:mail-archives.apache.org/mod_mbox/cordova-commits/201406.mbox/… 我通过在我的 build.gradle 中遵循这些配置成功地部署了我的应用程序......非常感谢!

以上是关于如何使用 Gradle 构建系统让 PhoneGap 项目在 Android Studio 中运行的主要内容,如果未能解决你的问题,请参考以下文章

如何让 Eclipse 使用 Gradle 生成 MapStruct 映射器

如何在 Gradle 构建脚本(Android)中定义和使用常量?

Gradle 的高级技巧

如何在构建服务器和工作站之间同步 Gradle/Android 版本代码

在 Android Gradle 构建中禁用清单合并

android中的build.gradle是干啥用的