2013-10-30 76 views
2

我讀了一個話題IntelliJ Idea 12 + Android + Scala nowadays這似乎是我所需要的。不過,我需要的東西稍有不同:我只想在Scala中創建一個庫並在Android項目中使用它。那個android項目也可以使用Java或Scala,沒關係。我不想在Scala中創建一個完整的Android項目。Android的斯卡拉圖書館

那麼我該如何創建這樣一個庫?

我需要創建一個android項目使用這裏的教程http://fxthomas.github.io/android-plugin/?或一個正常的斯卡拉圖書館它根本不知道有關android的事實(它將用於android項目中),然後當我將它添加到一個android項目時,我將不得不添加scala支持?

P.S.我使用IntelliJ Idea 12和sbt。

回答

1

爲了告訴你是否需要一個Android(庫)項目或一個普通的Scala應用程序,你需要清楚你的用例。事實上,當您以Java方式構建Android庫時,您必須問自己同樣的問題。

當您的圖書館提供任何種類的資源(圖形,xml-views,...)時,您需要創建一個圖書館項目,因爲當您將項目包裝到*.jar文件中時,這些資源將無法訪問更多。當你創建一個圖書館項目時,你也向用戶提供圖書館的源代碼。

如果情況並非如此,並且您想要構建的所有文件都以*.class文件結尾,您可以繼續使用通用的Scala項目。生成的*.jar文件可以用作庫。即使在這樣的Scala項目中,如果您將android.jar添加到您的項目依賴關係中,您也可以參考Android API。

libraryDependencies += "com.google.android" % "android" % "4.1.1.4" % "provided" 
+0

你是說,我可以創建一個scala庫,並將它作爲依賴項添加到Android應用程序中,就像它是一個Java庫一樣嗎? –

+0

如果這個Android應用程序也是用Scala編寫的,那麼它將完美地工作。當Android應用程序通過Java代碼與您的Scala庫進行交互時,您即將進入獅子洞。使用Java的Scala代碼(一般來說,不涉及Android相關)是一件麻煩的事情,需要您關注在Scala最終使用的功能。這是可能的,但.. – Taig

+0

,如果它是用Java編寫的? –