[英]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 build
如http://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的一些截图:
即 打开命令提示符并设置检查gradle。 可以使用gradle -version来检查。
安装Gradle eclipse PlugIn:a。 启动Eclipse b。 帮助> Eclipse Market Place c。 搜索“gradle”d。 在那里选择“Nodeeclipse / enide”e。 选择列出的所有内容,接受并安装。 F。 安装后重新启动eclipse。
设置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”
建设项目: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。 在这些修复之后再次构建。
在设备上安装Build:a。 将设备连接到m / cb右键单击build.gradle c。 运行方式> gradle installDebug Gradle Android start d。 等待安装完成
调试版本:a。 启动应用程序b。 附加调试器(DDMS>设备>应用程序)。 C。 我们能够在几个设备上进行调试。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.