繁体   English   中英

是否可以使用Eclipse的Gradle构建系统与Eclipse?

[英]Is it possible to use the Gradle build system for Android with Eclipse?

我有一个应用程序,需要为不同的客户使用不同的资源多次构建(品牌,配置和客户之间预先加载的数据更改)。

在今年的Google I / O之后,我听说过基于Gradle的新Android构建系统。 所以我想,使用Gradle构建脚本实现这个单源/多apks场景是个好主意。

现在我的问题出现了:如何在坚持Eclipse的同时开始使用Gradle进行构建? 我在网上发现的所有读取都指向将项目转换为仍然不成熟的Android Studio。 我想推迟迁移到Android Studio,直到被Google声称“安全”用于生产。

理想情况下,我希望能够将构建脚本挂钩到Eclipse的调试和运行配置,这与我可以选择的方式非常相似,并选择不同的构建目标来在XCode中进行调试和存档。 如果可能的话,需要采取哪些步骤来完成这项工作?

我为这些问题的无聊质量道歉,但对我而言,这实际上是一个相当未被发现的国家。 任何帮助表示赞赏。

编辑:我们的团队已于2013年10月下旬迁移到Android Studio,因为版本0.4正在遇到越来越少的错误。 如果您的组织对于采用1.0之前的环境进行开发并不过于保守,我建议您尽量避免使用Android Studio及其Gradle构建系统。 缺少恕我直言的唯一重要的事情是对单元测试的体面支持。

可以使用2个构建系统(基于Eclipse + gradle)。 只要确保输出文件夹是不同的( bin为ADT, build了gradle产出)。 (更新TL; DR:检查Nodeclipse / Enide Gradle for Eclipse市场 ))

File -> Export -> Generate Gradle build files只会添加build.gradle其中包含以下内容(但检查版本)。 没有更改现有文件。

com.android.tools.build:gradle版本应该是最新版本。 对于gradle类型的gradle buildhttp://tools.android.com/tech-docs/new-build-system/user-guide中所述。 尝试更多gradle tasks (在我缓慢的Internet连接上花了1个小时!为gradle下载所有需要的依赖项)

Vogella教程http://www.vogella.com/articles/AndroidBuild/article.html尚未准备好。 其他在线教程还没有真正完成http://www.jayway.com/2013/02/26/using-gradle-for-building-android-applications/

Eclipse ADT尚未使用gradle,我认为它将首先在Android Studio中完善。 在两个IDE中同时开始使用不断发展的技术并不是那么明智。

请参阅下面的build.gradle示例。 如果你已经掌握了gradle,那么根本不需要巫师。 对于经典Android项目的最新build.gradle模板,请检查gh.c / N / n-1 / b / m / oneeg / docs / android / build.gradle

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.5.+'
    }
}
apply plugin: 'android'

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
}

android {
    compileSdkVersion 8
    buildToolsVersion "19.0.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']
        }

        // Move the tests to tests/java, tests/res, etc...
        instrumentTest.setRoot('tests')

        // Move the build types to build-types/<type>
        // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
        // This moves them out of them default location under src/<type>/... which would
        // conflict with src/ being used by the main source set.
        // Adding new build types or product flavors should be accompanied
        // by a similar customization.
        debug.setRoot('build-types/debug')
        release.setRoot('build-types/release')
    }
}

Eclipse Marketplace不附带ADT-Bundle,因此可以使用更新站点。

更新用于Eclipse的Gradle Integration的 p2存储库是

http://dist.springsource.com/release/TOOLS/gradle

但是从版本3.4.0开始,它不为.gradle文件提供编辑器。 所以对于Android开发没有任何意义。

我会使用默认的ADT构建,将gradle作为实验的辅助构建,并在http://tools.android.com/tech-docs/new-build-system上的错误流量变得罕见时保持关注。 (那应该是正式1.0版本)

更新时间:2014-04-15

Alex Ruiz(来自Android团队)关于Android,Gradle和ADT的博客

Android的Gradle模型

我们决定使用与Gradle项目无关的IDE表示,而不是创建特定于IDE的Android / Gradle模型。 这样,我们就拥有了一个易于维护的单一信息源。 IDE集成将作为每个支持的IDE(在我们的例子中,Eclipse和IDEA)的插件实现。这种方法的主要好处是我们可以独立于IDE集成插件发布Gradle插件。 例如,我们可以发布一个新版本的Eclipse插件,该插件具有多个错误修复,而不会影响Android的Gradle端。

截至2014年4月,eclipse-gradle插件与android-gradle插件不兼容:

正如Android团队在问题57668中所回答的那样(由@arcone提出)

项目成员#2 x ... @ android.com

eclipse插件与android插件不兼容。

您将无法使用Eclipse中的默认Gradle支持将Android gradle项目导入Eclipse。

为了使它在Eclipse中运行,我们将不得不更改Eclipse的Gradle插件,就像我们在IntelliJ中修改Gradle支持一样

那就是Android团队正在开发IntelliJ的gradle插件,Eclipse的gradle插件也需要更新。

在Nodeclipse努力平滑过渡时间。 并继续在Eclipse中开发,同时仍在试验或完全使用gradle。

用于Eclipse的Nodeclipse / Enide Gradle市场

Gradle for Eclipse的一些截图:

  1. 安装Gradle:
    一种。 http://gradle.org/gradle-download/ b。 从先前版本部分选择2.1。 C。 在方便的文件夹中解压缩。(例如:D:\\ Graddle \\ gradle-2.1)d。 设置系统环境变量。 一世。 GRADLE_HOME为D:\\ Graddle \\ gradle-2.1)ii。 GRADLE_OPTS为-XX:MaxPermSize = 512m iii。 %GRADLE_HOME%\\ bin到路径iv。 设置ANDROID_HOME(例如:D:\\ android-sdk)v。将“%ANDROID%\\ platform-tools”附加到路径。

打开命令提示符并设置检查gradle。 可以使用gradle -version来检查。

  1. 安装Gradle eclipse PlugIn:a。 启动Eclipse b。 帮助> Eclipse Market Place c。 搜索“gradle”d。 在那里选择“Nodeeclipse / enide”e。 选择列出的所有内容,接受并安装。 F。 安装后重新启动eclipse。

  2. 设置Gradle和Java Homes:a。 发射日食。 窗口>首选项> Gradle EnIDE c。 设置这些如果没有设置:i。 设置Gradle home(Ex:D:\\ Graddle \\ gradle-2.1)ii。 设置要使用的备用JAVA_HOME(例如:C:\\ Program Files(x86)\\ Java \\ jdk1.7.0_60)iii。 GRADLE_OPTS的JVM选项设置为“-XX:MaxPermSize = 512m”

  3. 建设项目:a。 在eclipse Java explorer中展开APK。 右键单击build.gradle c。 运行方式> Gradle GUI d。 Comand Line:gradle clean build e。 等待构建完成:第一次构建将需要几分钟。 F。 如果Build dex错误或Java堆空间错误:i。 在编辑器中打开build.gradle。 II。 对于多dex构建 - 根据您的java设置适当的javaMaxHeapSize(对于32位Java,javaMaxHeapSize = 1024M,对于64位Java,为2048M)。 可以评论签名(// apply from:“$ rootProject.projectDir / jenkins_config / gradle / signing.gradle”;)以避免签署调试版本。 IV。 在这些修复之后再次构建。

  4. 在设备上安装Build:a。 将设备连接到m / cb右键单击build.gradle c。 运行方式> gradle installDebug Gradle Android start d。 等待安装完成

  5. 调试版本:a。 启动应用程序b。 附加调试器(DDMS>设备>应用程序)。 C。 我们能够在几个设备上进行调试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM