Lud*_*lze 8 groovy android android-studio
Groovy的2.4版本附带了对Android应用程序开发的官方支持http://docs.codehaus.org/display/GROOVY/Groovy+2.4+release+notes.
以前使用eclipse进行Android开发,没有使用Android Studio或使用Gradle的经验,现有的使用Android Studio设置常规android项目的说明(例如http://docs.groovy-lang.org/docs/next/ html/documentation/tools-groovyc.html#section-android,https://github.com/groovy/groovy-android-gradle-plugin,或http://hosain.net/2015/02/07/getting-started -with-android-development-using-groovy-2.4-and-android-studio.html)太模糊了,不适合我,而且他们使用的版本号的差异令人困惑.
我想看看适用于Android的Android Studio 1.2.1.1的详细分步说明,并解释如何确定版本号.
Lud*_*lze 20
在我自己学习如何做之后,这是我开始时想要阅读的逐步描述.我使用了许多来源的信息.这些资源都不适用于我,它们的版本号以及将内容插入构建脚本的位置不同.这些说明是尝试各种组合并填充一些空白的结果.

在欢迎屏幕上,选择"启动新的Android Studio项目".

填写应用名称和"公司域名".

此页面无需更改.

此示例使用空白活动.

此示例使用名称GroovyActivity作为主Android屏幕.现在创建了新项目.当android studio完成项目创建时,它显示两个打开的文件,如下所示:

暂时忽略"渲染问题".它将在以后的编译过程中自行解决.通过单击其选项卡的十字来关闭这两个打开的文件.
打开此build.gradle(Module:app)文件:

在第一行之前插入以下代码:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.1.0'
classpath 'org.codehaus.groovy:gradle-groovy-android-plugin:0.3.6'
}
}
Run Code Online (Sandbox Code Playgroud)

让我们暂停一下,以反映版本号.线条
classpath 'com.android.tools.build:gradle:1.1.0'
Run Code Online (Sandbox Code Playgroud)
和
classpath 'org.codehaus.groovy:gradle-groovy-android-plugin:0.3.6'
Run Code Online (Sandbox Code Playgroud)
包含版本号.你怎么知道在这里插入哪个版本号?在您阅读这些说明时,可能有新版本,除非您有特定的版本要求,否则您将需要使用gradle脚本中使用的最新版本.
您如何了解最新版本?这取决于:
请注意,编辑器突出显示了带有黄色背景颜色的com.android.tools.build:gradle:1.1.0.将鼠标指针悬停在此文本上时,会出现工具提示:

所以似乎android studio知道这个东西的最新版本并建议你使用它.听取建议并将此版本号更新为您的android studio版本所指示的版本号.
但是,这个gradle-groovy-android-plugin事件没有出现这样的工具提示.
无论如何,这里发生了什么?我理解它的方式,这些名称和版本号识别用于您的应用程序或用于构建您的应用程序的二进制组件的名称,但它们既不是android studio的一部分,也不是您希望自己查找和安装或编译它们.相反,此构建脚本指定了存储库位置,希望可以从中下载这些二进制组件.函数jcenter()似乎返回存储库的位置.目前,此存储库是bintray.com.
要了解这个gradle groovy android插件的最新版本,请使用您的webbrowser访问bintray.com并使用其搜索功能.搜索groovy-android-plugin.在我写这篇文章的时候,结果的开头看起来像这样:

列出的结果数量有点令人沮丧.我希望他们在那里有一些相关的排序.搜索第一页,我只看到2个相关的匹配,最新的版本号是0.3.6.
了解了最新的版本号(在撰写本文时),gradle脚本的正确启动是以下代码:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.2.3'
classpath 'org.codehaus.groovy:gradle-groovy-android-plugin:0.3.6'
}
}
Run Code Online (Sandbox Code Playgroud)
回到修改gradle脚本,在"apply plugin:'com.android.application'"行之后插入以下代码:
apply plugin: 'groovyx.grooid.groovy-android'
Run Code Online (Sandbox Code Playgroud)

最后,在gradle脚本的末尾附近插入一行
compile 'org.codehaus.groovy:groovy:2.4.1:grooid'
Run Code Online (Sandbox Code Playgroud)
所以它看起来像这样:

同样,这里有一个版本号,你可以通过搜索*grooid.jar找到bintray的最新版本(是的,以星号作为第一个字符).结果列表跨越两页,在第二页上我发现2.4.3是最新版本:

更改gradle文件后,gradle需要"同步".如果你完全退出android studio并重新启动它,gradle会同步,所以这就是我在这一点上所做的.此图显示重启后的同步:

后来我发现工具栏中有这个图标

触发同步.
同步完成后,使用下拉菜单将左窗格从"Android"视图更改为"项目"视图:

现在至少在模拟器中构建并执行一次项目.我不确定这会发生什么变化,但是如果你现在不构建和执行你的项目,虽然一切都只是java源代码,那么在我们改为groovy后你的groovy源代码将无法找到.您可以使用工具栏中的运行图标或键盘快捷键shift-F10来构建和运行项目.
在模拟器中执行项目后,返回左侧窗格,该窗格仍显示"项目"视图.在此视图中,导航到app/src/main目录,该目录当前包含子目录java和res,以及AndroidManifest.xml文件.
现在,您将在上下文菜单的帮助下在main下创建一个额外的"Java文件夹":

一定要使用菜单项New-> Folder-> Java Folder,而不是 New-> Directory,这会在以后引起问题.
在下一个屏幕中,

勾选"更改文件夹位置"复选框,并确保输入字段中的名称为src/main/groovy.
如果您仍然打开了该gradle脚本,您将看到它已被调整并包含以"sourceSets"开头的行中新目录的名称.为了更好地衡量,请单击gradle同步图标以确保所有内容都已正确同步.

接下来,您希望实现新的groovy文件夹包含应用程序包名称的正确包路径.我发现正确实现这一目标的唯一方法是使用groovy文件夹的上下文菜单创建一个新的临时java类,

并输入使用包名称完全限定的此类的名称:

确保包名称的拼写正确!
新包将出现在groovy文件夹中,并在其中,即临时java类.
所有groovy类以及以某种方式使用groovy类的所有java类都必须位于src/main/groovy目录下,而不是src/main/java目录下.我们现在可以将Activity类从java目录树拖到groovy目录下面的同一个包中:
现在可以删除临时类(使用上下文菜单),通过从上下文菜单中选择Refactor-> Rename File,可以将Activity类从.java迁移到.groovy.

文件扩展名.java只是替换为.groovy扩展名.以同样的方式,您可以稍后创建新的Java类,并在您真正想要创建groovy类时将其文件重命名为.groovy.您现在可以更改活动中的一些代码,以验证您是否可以在Android应用程序中实际拥有groovy代码.建议:
在res/layout/activity_groovy.xml文件中为"Hello World"文本视图提供一个id,如下所示:
然后,使用groovy的字符串插值以编程方式更改此视图显示的文本:

在模拟器中构建和执行:

| 归档时间: |
|
| 查看次数: |
7077 次 |
| 最近记录: |