同時,我想將此項目用作Android Studio項目的一部分。
我假設這個項目產生一個庫;否則,我不確定你會在Android項目中使用它做什麼。然後問題就變成了:這個庫是否被其他項目使用,與您計劃的Android Studio項目分開?
如果答案是「是的,這個庫有很多客戶端」,那麼你應該真的考慮將該庫作爲工件發佈到存儲庫。這可能是您自己開發計算機上的存儲庫,或者是您的團隊的本地服務器上的存儲庫,或者是公共存儲庫上的存儲庫(例如,如果這是一個開源項目)。您的每個客戶可能都需要此庫的不同版本,因此將庫的不同版本作爲版本化工件發佈似乎很有用。
如果答案是「這個Java代碼的JAR可以單獨使用,比如從命令行,但作爲一個庫,唯一的客戶端是Android Studio項目」,那麼你可以設置一個混合Android Studio/Eclipse項目,將Eclipse項目移到Android Studio項目中,以便它可以用作庫模塊。
然後,關鍵是將build.gradle
文件添加到Eclipse項目/ AS模塊,該模塊教Gradle/AS如何構建Eclipse項目。例如,如果您有排序文件結構是預AS使用的Android項目,你可能有一個android
封這樣的:
android {
compileSdkVersion 19
buildToolsVersion "21.1.2"
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
// Move the tests to tests/java, tests/res, etc...
instrumentTest.setRoot('tests')
// Move the build types to build-types/<type>
// For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
// This moves them out of them default location under src/<type>/... which would
// conflict with src/ being used by the main source set.
// Adding new build types or product flavors should be accompanied
// by a similar customization.
debug.setRoot('build-types/debug')
release.setRoot('build-types/release')
}
}
您還需要在此模塊中的項目添加到您的settings.gradle
文件根。此時,其他模塊可以使用dependencies
中的compile project(':whatever-you-call-it')
來拉入您的庫。
這就是說,正如sschuberth所說,Android Studio支持純Java模塊,至少從Android Studio 2.2開始。我會走這條路,因爲兩個IDE將是非常系統密集型的,因爲Eclipse和Android Studio都不具備「苗條」的資格。
請注意,現在繼續使用Eclipse ADT進行Android開發可能不是一個好主意,因爲[Google已正式結束其支持](http://android-developers.blogspot.de/2016/11/support -ended換蝕-android.html)。 – sschuberth
選項1:讓Eclipse項目發佈AS項目用作依賴項的JAR。例如,您可以使用本地Maven回購。選項2:將Eclipse項目作爲模塊移動到Android Studio項目中。在這個模塊中添加一個'build.gradle',配置源代碼集和教Gradle(以及Android插件)如何在Eclipse項目結構中查找文件。將該模塊添加到項目根目錄下的settings.gradle中。然後,讓項目中的其他模塊通過'compile project()'引用該模塊。 – CommonsWare
@sschuberth謝謝你的注意事項。我使用Eclipse for Java(only)項目和AS for Android。這就是爲什麼我需要共享選項。 – c0der