2013-07-20 100 views
9

最近我試圖用Android Studio製作一些Android應用程序。如何在Gradle中使用Scala,Groovy和Java代碼的組合?

內置的Gradle插件是否支持使用Java,Groovy和Scala代碼的組合來構建Android應用程序?

看看gradle-android wiki,我發現sourceSet不適用於Android Studio(得到「R重新定義」錯誤)。

我在Android Studio中使用默認的Gradle Wrapper方式。

如何在我的Android Studio項目中使用Scala,Groovy和Java代碼的混合?

My Project Screenshot here

我已經試過一些指令添加到的build.gradle(如使用apply pluginsourceSets),但他們似乎並不管用。

我想改變一些代碼,就像homeactivity.javahomeactivity.groovy可能的工作,但我還沒有發現這樣做還的方式。

當我取消了sourceSets塊,我得到這個錯誤信息:

Gradle: A problem occurred evaluating project ':AgricolaScore'. 
> Could not find method groovy() for arguments [build_3cmth[email protected]15f565e7] on source set main. 
+0

@dmahapatro,我能做些什麼來把這個問題'擱置'到正常? – Gohan

+3

您可以編輯問題以解決主要基於意見的問題。有關「擱置」意味着什麼的更多幫助,您應該查看幫助中心中的[this](http://stackoverflow.com/help/closed-questions)相關頁面(可通過單擊「help 「在頂部欄中)。 –

+0

他已經編輯過這個問題;怎麼辦?誠然,編輯是相當小的。 – tripleee

回答

4

嗯,這可能不是你要找的答案,但據我所知,Groovy中的到Android的移植已經嘗試兩次,從未完成。今年夏天有一個GSoC proposition,但我不知道它是否已經被拿起。這意味着目前還沒有Groovy代碼可以在Dalvik虛擬機上運行,​​當然Gradle對此無能爲力。

我對斯卡拉了解不多,但它看起來像斯卡拉代碼可以編譯在Dalvik上運行,所以你應該有更多的運氣。例如,查看this,以便使用Scala構建工具爲Android構建。

編輯:這需要編輯,因爲事情已經改變了最近:最後gr8conf看到了CédricChampeau的grooid的介紹,它允許在android上運行groovy代碼。好極了 !

+0

看來,Champeau先生的工作最好用最近更新的android studio插件訪問https://github.com/groovy/groovy-android-gradle-plugin – AnneTheAgile

2

關於Groovy,Sensei的答案對我來說似乎很好。

關於Scala,你真的需要用SBT替換Gradle來進行依賴管理。

然後你需要一個插件。

我已經嘗試了其中的兩個:

第二個有一個很好的政黨成員,但不工作與Intellij Idea相得益彰。

所以我使用第一個。這很容易設置(閱讀...讀我)並在同一個項目中使用Java + Scala並不意味着任何特殊配置。最後一次提交是6天(截至今天,11/11/13),並且該項目已經兩年了,所以我相信它不會很快死亡。

我知道有第三個插件支持SBT上的Android,但據我所知開發已停止。

希望它能幫助你。

Regards