Android Studio 中运行 groovy 程序的方法图文详解

Groovy简介

Groovy是一种基于JVM(Java虚拟机)的敏捷开发语言,它结合了Python、Ruby和Smalltalk的许多强大的特性,Groovy 代码能够与 Java 代码很好地结合,也能用于扩展现有代码。由于其运行在 JVM 上的特性,Groovy也可以使用其他非Java语言编写的库。

Groovy 是 用于Java虚拟机的一种敏捷的动态语言,它是一种成熟的面向对象编程语言,既可以用于面向对象编程,又可以用作纯粹的脚本语言。使用该种语言不必编写过多的代码,同时又具有闭包和动态语言中的其他特性。
Groovy是JVM的一个替代语言(替代是指可以用 Groovy 在Java平台上进行 Java 编程),使用方式基本与使用 Java代码的方式相同,该语言特别适合与Spring的动态语言支持一起使用,设计时充分考虑了Java集成,这使 Groovy 与 Java 代码的互操作很容易。(注意:不是指Groovy替代java,而是指Groovy和java很好的结合编程。

运行 groovy 程序

首先由几个需要注意的地方

1.最好不要在Java Libray module 以外的其他类型module,运行groovy程序,脚本类的还问题不大,如果是在GroovyConsole运行java类的groovy程序时,就明显无法执行了。

因为 groovy 插件和 android 插件不兼容,所以不能在Android 相关的module上使用 groovy。

工程build失败,原因如下:

Caused by: com.android.build.gradle.internal.BadPluginException: The 'java' plugin has been applied, but it is not compatible with the Android plugins.

2.虽然不推荐在Java Library之外的其他模块运行groovy程序,但是只要把该模块的build gradle文件改为以下内容,脚本类和java类groovy程序还是能执行的,但是这也失去了该module的意义了吧,所以还是推荐使用Java Library 运行groovy程序,当然如果只是学习groovy都为所谓。

apply plugin: 'groovy'

dependencies {
 implementation fileTree(dir: 'libs', include: ['*.jar'])
 implementation localGroovy()
} 

apply plugin: ‘groovy' 会引入 groovy 插件,groovy 插件继承了 java 插件。 implementation localGroovy() 会引入 Gradle 所带的 Groovy 库。

还是上面讲过的Android 和 groovy 插件不能同时存在,即下图这种方式是不允许的

java-library 插件和 groovy插件可以同时存在

根据上述需要注意的问题,正确步骤如下

1.新建一个Java Library module

2.修改该module下的build gradle 文件,如下

3.src/ main目录下新建 groovy 文件夹,并新建 Test.groovy 文件

1 、运行Java 式的 Groovy

按以上步骤完成后,编写demo如下,点击运行即可

apply plugin: 'groovy'

dependencies {
 implementation fileTree(dir: 'libs', include: ['*.jar'])
 implementation localGroovy()
} 

虽然运行成功了,但是提示

Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0.

此版本中使用了不推荐使用的Gradle功能,使其与Gradle 6.0不兼容。

回到当前module 下的 build.gradle文件,添加如下代码:

task renameGroovyToJava {
 doLast{
 delete "$buildDir/classes/java"
 File file = new File("$buildDir/classes/groovy")
 println file.renameTo("$buildDir/classes/java")
 }
}

同步后,点击运行

1.1 原理

点击运行后,通过查看 android studio 控制台信息发现,它执行了 compileJava Task,于是将 compileGroovy Task 附着在 compileJava 后面,compileGroovy task 完成后,再将 build/classes/groovy 文件夹重命名为 java。从而使 android studio 可以执行 groovy 编译后的 class 文件。

前后对比如下:

2 、脚本式的 Groovy

1.在Test.groovy相同路径下创建新的groovy文件,如下

2.编写 groovy 文件,如下:

3.找到工具栏的这个地方,选择 Edit Configurations...,在弹出的页面点击左上角的加号 Add New Configuration,再选择groovy

4.然后只需要填写 Name、Script path 就可以,Name 随便写,跟groovy文件名相同即可,Script path就选择上面 MyGroovy 类的路径。

5.现在工具栏如下,点击下图中红款中的绿三角,运行groovy程序

运行结果如下

注意

脚本类 groovy 的配置方法,同样可以用来执行 Java 类的 groovy,但 java 类的配置方法不能运行脚本类的 groovy。上面名为Test.groocy的Java 类的 groovy按照脚本类 groovy 的配置方法配置完成后运行如下:

Groovy console

android studio 的标题栏进入 Tools/Groovy Console。这里也可以直接运行 groovy 程序(java类的和脚本类的都可以)。

Groovy console 运行脚本类 非常简单,直接在编写点击左上角运行按钮即可

上图就是点击Groovy Console后创建的,编辑代码点击左上角三角符号后运行结果如下

Groovy console 运行java类 就比较麻烦了,我觉得也没有必要把java类在groovy console中运行,下面我还是说一下我踩过的坑和步骤吧

我之前创建的module是Android Library,该module的名字是groovy,然后build gradle 文件把Android 插件去掉了,如下图

然后我们在新的Groovy Console中随便编写一个class,代码如下:

点击运行,选择 Run 'Test1.main()':

选择 Run 'Test1.main()'后弹框如下:

上面已经提及到了,以上都是我在名为groovy Android Library module下进行的操作

选择完module后,提示如下:

所以还必须创建一个名为Test1的class文件,那我们问什么还要使用Groovy Console呢,直接运行java类的groovy程序就行了

我这里有一个之前的Test.class,直接把console里面的改一下名字,如下:

然后继续按上述步骤执行,这次全部OK了

点击Run之后,运行结果如下:

上面是正常的流程,不管是什么类型的module,只要build gradle 按上面配置,然后一步一步执行都能正常运行。

但是我之前把groovy插件和Android插件放到了一起,如下:

虽然build失败如下,但我没有理会:

这个时候我们还是按上面 Groovy Console执行java类程序 正常的步骤执行,会提示如下:

Cause: compileSdkVersion is not specified. Please add it to build.gradle

即 原因:未指定compileSdkVersion,请将其添加到build.gradle

然后我们把compileSdkVersion添加到build gradle文件中,如下:

再次按照 Groovy Console执行java类程序 正常步骤执行,提示如下:

The 'java' plugin has been applied, but

it is not compatible with the Android plugins.

已经应用了“java”插件,但它与Android插件不兼容。还是一开始build提示的问题,所以说最好在Java Library 执行groovy程序

到此这篇关于Android Studio 中运行 groovy 程序的方法图文详解的文章就介绍到这了,更多相关Android Studio 运行 groovy 程序内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Groovy编程入门攻略

    当一个Java开发人员加入到Groovy的开发之旅的时候,他/她经常带着Java思想去思考,并逐步地学习Groovy,每次学习一个特性,这会让他慢慢变得更有创造性和写出更符合语言习惯的Groovy代码.这篇文章的目的是引导这些开发人员去学习基本的Groovy编程风格,学习新的操作技巧,新的语言特性,例如闭包等等.这篇文章并不会详细铺开描述,而是给读者一个入门的指引,并让读者在以后的深入学习打好基础.如果你喜欢这篇文章,可以贡献你的一份力量去丰富它. 无分号 C / C++ / C# / Java

  • 基于AngularJS+HTML+Groovy实现登录功能

    AngularJS是开发基于浏览器的响应式RWD应用程序的一个前端MVC框架,由谷歌最初开发的 开源项目,干净的架构吸引了大量粉丝,适合建立CRUD类型的业务应用程序,并不适合开发游戏等应用, 使用声明性编程的用户界面和命令式编程的逻辑, 支持现代桌面和移动浏览器 Internet Explorer版本8.0及以上. AngularJS是一款客户端MVC的javascript框架,而客户端MVC代表未来架构(为什么要使用MVC+REST+CQRS 架构),如果你有Struts或SpringMVC

  • 深入学习java中的Groovy 和 Scala 类

    前言 Java 传承的是平台,而不是语言.有超过 200 种语言可以在 JVM 上运行,它们之中不可避免地会有一种语言最终将取代 Java 语言,成为编写 JVM 程序的最佳方式.本系列将探讨三种下一代 JVM 语言:Groovy.Scala 和 Clojure,比较并对比新的功能和范例,让 Java 开发人员对自己近期的未来发展有大体的认识. Java 语言的开发人员精通 C++ 和其他语言,包括多继承(multiple inheritance),使得类可以继承自任意数量的父类.多继承带来的一

  • Android Studio 中运行 groovy 程序的方法图文详解

    Groovy简介 Groovy是一种基于JVM(Java虚拟机)的敏捷开发语言,它结合了Python.Ruby和Smalltalk的许多强大的特性,Groovy 代码能够与 Java 代码很好地结合,也能用于扩展现有代码.由于其运行在 JVM 上的特性,Groovy也可以使用其他非Java语言编写的库. Groovy 是 用于Java虚拟机的一种敏捷的动态语言,它是一种成熟的面向对象编程语言,既可以用于面向对象编程,又可以用作纯粹的脚本语言.使用该种语言不必编写过多的代码,同时又具有闭包和动态语

  • Android Studio 中aidl的自定义类的使用详解

    自己折腾了好久,记录一下. service端: 1:创建类Dog,需要实现Parcelable接口: 2:aidl下创建 Dog.aidl,里面两句话就可以了 (1)package s包名; (2)parcelable Dog; 3:interface.aidl引入Dog类, import s包名.Dog; Client 端: 1:创建类Dog,需要实现Parcelable接口: 2:aidl下创建 Dog.aidl, (1)package c包名; (2)parcelable Dog; 注意:

  • Android Studio搜索功能(查找功能)及快捷键图文详解

    1.在当前窗口查找文本[Ctrl+F] F3 向下查找关键字出现位置 Shift+F3 向上一个关键字出现位置 2.在当前工程内查找文本[Ctrl+Shift+F] 先会弹出一个对话框,直接点击[find],开始在整个工程内查找该字符串 查找结果如下: 3.查找类[Ctrl+N] 4.查找文件[Ctrl+Shift+N] 5.查找项目中的方法或变量[Ctrl+Shift+Alt+N] 6.查找类/方法/变量引用的地方 先定位光标 右键选择"Find Usages"(快捷键Alt+F7)

  • Android Studio中ButterKnife插件的安装与使用详解

    1>Android Studio 安装ButterKnife插件 同安装其他插件类似,如下: 1.1>打开Plugins界面 按照上图中1,2,3指示操作(注意:这里我的Android Studio中已经安装了该插件,所以显示的内容不太一样).然后重启Android Studio. 2>在项目上使用该开源项目(以Android Studio 为例) 2.1>在bulid.gradle中添加依赖 重新编译一下该项目,通过后继续操作. 2.2>在代码中就可以使用注解的方式了 2.

  • Android Studio中使用lambda表达式的方法

    1.module的build.gradle里buildTypes中添加: compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } 2.module的build.gradle里defaultConfig中添加: jackOptions.enabled = true 3.注意事项:jack可能会导致中文乱码,所以需要在gradle.proper

  • Android Studio中引入Lambda表达式的方法

    本文介绍的是在Android Studio中引入Lambda表达式的方法,下面话不多说,来看看详细的介绍. 方法如下: 依次点击 [File][Other Settings][Default Project Structure]确保当前项目使用的JDK版本是1.8. 打开项目(Project)的build.gradle,在dependencies节点添加 classpath 'me.tatarka:gradle-retrolambda:3.2.0' 打开项目(Module)的build.grad

  • javascript实现在网页中运行本地程序的方法

    本文实例讲述了javascript实现在网页中运行本地程序的方法.分享给大家供大家参考,具体如下: <input onclick="exec('notepad.exe')" value="执行noteppad.exe" type="button"> <input onclick="exec('cmd.exe')" value="执行cmd.exe" type="button&qu

  • 在docker中运行mariadb程序的方法

    1.安装docker 2.获取mariadb镜像 docker pull mariadb 首先在https://hub.docker.com查找mariadb官方镜像,相关参数设置https://hub.docker.com/_/mariadb/有详细说明 3.运行镜像 docker run -p 3306:3306 --name mariaone -v /usr/local/mysql/my.cnf:/etc/mysql/my.cnf -e MYSQL_ROOT_PASSWORD=mypass

  • 浅析SVN在Android Studio中的安装和配置方法

    在AndroidStudio中开发版本控制,除了Git就是SVN,和Eclipse不同Android Studio没有提供单独的插件,只能和SVN客户端关联使用,和Eclipse安装有很大区别,下面介绍个在AndroidStudio中SVN的安装和配置方法. 一.SVN的安装 Eclipse都是直接安装插件就可以了,AndroidStudio不行,只能通过关联SVN客户端,需要特别注意的是安装SVN时必须安装command line 功能,只有安装带有 command line 功能的 SVN

  • 在Spring Boot应用程序中使用Apache Kafka的方法步骤详解

    第1步:生成我们的项目: Spring Initializr来生成我们的项目.我们的项目将提供Spring MVC / Web支持和Apache Kafka支持. 第2步:发布/读取Kafka主题中的消息: <b>public</b> <b>class</b> User { <b>private</b> String name; <b>private</b> <b>int</b> age

随机推荐