Android Studio 中運行 groovy 程序的方法圖文詳解
Groovy簡介
Groovy是一種基于JVM(Java虛擬機)的敏捷開發(fā)語言,它結(jié)合了Python、Ruby和Smalltalk的許多強大的特性,Groovy 代碼能夠與 Java 代碼很好地結(jié)合,也能用于擴展現(xiàn)有代碼。由于其運行在 JVM 上的特性,Groovy也可以使用其他非Java語言編寫的庫。
Groovy 是 用于Java虛擬機的一種敏捷的動態(tài)語言,它是一種成熟的面向?qū)ο缶幊陶Z言,既可以用于面向?qū)ο缶幊?,又可以用作純粹的腳本語言。使用該種語言不必編寫過多的代碼,同時又具有閉包和動態(tài)語言中的其他特性。
Groovy是JVM的一個替代語言(替代是指可以用 Groovy 在Java平臺上進行 Java 編程),使用方式基本與使用 Java代碼的方式相同,該語言特別適合與Spring的動態(tài)語言支持一起使用,設計時充分考慮了Java集成,這使 Groovy 與 Java 代碼的互操作很容易。(注意:不是指Groovy替代java,而是指Groovy和java很好的結(jié)合編程。
運行 groovy 程序
首先由幾個需要注意的地方
1.最好不要在Java Libray module 以外的其他類型module,運行g(shù)roovy程序,腳本類的還問題不大,如果是在GroovyConsole運行java類的groovy程序時,就明顯無法執(zhí)行了。
因為 groovy 插件和 android 插件不兼容,所以不能在Android 相關(guān)的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之外的其他模塊運行g(shù)roovy程序,但是只要把該模塊的build gradle文件改為以下內(nèi)容,腳本類和java類groovy程序還是能執(zhí)行的,但是這也失去了該module的意義了吧,所以還是推薦使用Java Library 運行g(shù)roovy程序,當然如果只是學習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插件可以同時存在
根據(jù)上述需要注意的問題,正確步驟如下
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 控制臺信息發(fā)現(xiàn),它執(zhí)行了 compileJava Task,于是將 compileGroovy Task 附著在 compileJava 后面,compileGroovy task 完成后,再將 build/classes/groovy 文件夾重命名為 java。從而使 android studio 可以執(zhí)行 groovy 編譯后的 class 文件。
前后對比如下:
2 、腳本式的 Groovy
1.在Test.groovy相同路徑下創(chuàng)建新的groovy文件,如下
2.編寫 groovy 文件,如下:
3.找到工具欄的這個地方,選擇 Edit Configurations...
,在彈出的頁面點擊左上角的加號 Add New Configuration,再選擇groovy
4.然后只需要填寫 Name、Script path 就可以,Name 隨便寫,跟groovy文件名相同即可,Script path就選擇上面 MyGroovy 類的路徑。
5.現(xiàn)在工具欄如下,點擊下圖中紅款中的綠三角,運行g(shù)roovy程序
運行結(jié)果如下
注意
腳本類 groovy 的配置方法,同樣可以用來執(zhí)行 Java 類的 groovy,但 java 類的配置方法不能運行腳本類的 groovy。上面名為Test.groocy的Java 類的 groovy按照腳本類 groovy 的配置方法配置完成后運行如下:
Groovy console
android studio 的標題欄進入 Tools/Groovy Console。這里也可以直接運行 groovy 程序(java類的和腳本類的都可以)。
Groovy console 運行腳本類 非常簡單,直接在編寫點擊左上角運行按鈕即可
上圖就是點擊Groovy Console后創(chuàng)建的,編輯代碼點擊左上角三角符號后運行結(jié)果如下
Groovy console 運行java類 就比較麻煩了,我覺得也沒有必要把java類在groovy console中運行,下面我還是說一下我踩過的坑和步驟吧
我之前創(chuàng)建的module是Android Library,該module的名字是groovy,然后build gradle 文件把Android 插件去掉了,如下圖
然后我們在新的Groovy Console中隨便編寫一個class,代碼如下:
點擊運行,選擇 Run 'Test1.main()'
:
選擇 Run 'Test1.main()'
后彈框如下:
上面已經(jīng)提及到了,以上都是我在名為groovy Android Library module下進行的操作
選擇完module后,提示如下:
所以還必須創(chuàng)建一個名為Test1的class文件,那我們問什么還要使用Groovy Console呢,直接運行java類的groovy程序就行了
我這里有一個之前的Test.class,直接把console里面的改一下名字,如下:
然后繼續(xù)按上述步驟執(zhí)行,這次全部OK了
點擊Run之后,運行結(jié)果如下:
上面是正常的流程,不管是什么類型的module,只要build gradle 按上面配置,然后一步一步執(zhí)行都能正常運行。
但是我之前把groovy插件和Android插件放到了一起,如下:
雖然build失敗如下,但我沒有理會:
這個時候我們還是按上面 Groovy Console執(zhí)行java類程序 正常的步驟執(zhí)行,會提示如下:
Cause: compileSdkVersion is not specified. Please add it to build.gradle
即 原因:未指定compileSdkVersion,請將其添加到build.gradle
然后我們把compileSdkVersion添加到build gradle文件中,如下:
再次按照 Groovy Console執(zhí)行java類程序 正常步驟執(zhí)行,提示如下:
The 'java' plugin has been applied, but
it is not compatible with the Android plugins.
已經(jīng)應用了“java”插件,但它與Android插件不兼容。還是一開始build提示的問題,所以說最好在Java Library 執(zhí)行g(shù)roovy程序
到此這篇關(guān)于Android Studio 中運行 groovy 程序的方法圖文詳解的文章就介紹到這了,更多相關(guān)Android Studio 運行 groovy 程序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android編程實現(xiàn)RotateAnimation設置中心點旋轉(zhuǎn)動畫效果
這篇文章主要介紹了Android編程實現(xiàn)RotateAnimation設置中心點旋轉(zhuǎn)動畫效果,結(jié)合實例形式較為詳細的分析了Android xml布局及RotateAnimation動畫類相關(guān)操作技巧,需要的朋友可以參考下2018-02-02解決NDK開發(fā)中Eclipse報錯Unresolved inclusion jni.h的最終解決方法(已測)
這篇文章主要介紹了解決NDK開發(fā)中Eclipse報錯Unresolved inclusion jni.h的最終方法,需要的朋友可以參考下2016-12-12android中用xml文件實現(xiàn)帶邊框背景效果的方法
這篇文章主要給大家介紹了在android中xml文件實現(xiàn)帶邊框背景效果的方法,其實實現(xiàn)的功能不是很難,僅作記錄,幫助需要的朋友們做個參考,需要的朋友們下面來一起看看吧。2017-06-06如何在Android中實現(xiàn)一個簡易的Http服務器
這篇文章主要介紹了如何在Android中實現(xiàn)一個簡易的Http服務器,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-05-05Android Activity中onStart()和onResume()的區(qū)別分析
這篇文章主要介紹了Android Activity中onStart()和onResume()的區(qū)別,結(jié)合Activity的四種狀態(tài)簡單分析了Android Activity中onStart()和onResume()方法的作用,并補充說明了Activity中六個常用函數(shù),需要的朋友可以參考下2016-01-01