在java中添加源_关于Java:如何在Android Studio中添加链接的源文件夹?
在Eclipse中,我可以將源文件夾作為"鏈接的源文件夾"添加到我的android項目中。 如何在Android Studio中實現同一目的?
或者是否可以添加外部文件夾以構建gradle?
在您的build.gradle中將以下內容添加到android節點的末尾
android {
....
....
sourceSets {
main.java.srcDirs += 'src/main/'
}
}
真的很有幫助。為什么將sourceSets放在android的范圍內?我的dependencies沒了。
但是此解決方案僅處理Java文件。那么src下的所有資源-可繪制,布局,字符串等呢?如何將它們放在外部文件夾中?
對于appengine,sourceSet必須位于根級別-不能嵌套在其中。奇怪的是,這將是android模塊的一種方式,而appengine模塊的另一種方式。
我認為它不支持Eclipse的include / exclude選項。太糟糕了。
我的build.gradle中沒有android塊。我應該加嗎?
@Deckard模塊" app"的build.gradle中應該有一個android塊,而不是在根構建文件中。
請注意,也可以使用絕對路徑-目錄然后出現在Android Studio中現有" src"目錄的旁邊,而不是內部。當將它們內部符號鏈接并添加為源目錄時,將出現"重復類"錯誤。另請參閱我對symlink答案的評論。
@GyRo您可以對資源文件執行相同的操作:在sourceSets中添加行main.res.srcDirs +=
我不知道什么是" Anrdriod節點"。現在您的分數是-1。
正確的答案是:
android {
....
....
sourceSets {
main.java.srcDirs += 'src/main/'
}
}
此外,如果您的外部源目錄不在src/main下,則可以使用如下相對路徑:
sourceSets {
main.java.srcDirs += 'src/main/../../../'
}
關于相對路徑-我想知道是否可以使用某種gradle變量,例如。 srcDirs + =" $(ProjectDir)/ mylib / src"?我是Gradle的新手,不知道它是否支持這樣的功能。
您可以省略srcmain....前綴,因為這些點會取消路徑分量。
@BrianWhite如何在另一臺機器上指定來源集? sourceSets { main.java.srcDirs += srcmain\\10.51.70.21\me\myco\apps\myapp\src }
我不希望您能夠這樣做,因為據我所知,它只是使用操作系統open()來訪問文件。您可以使用nfs或smb之類的方法將遠程目錄直接安裝到文件系統中,但這并不是特定于Android Studio的。
以防萬一有人感興趣,這里有一個完整的Java模塊gradle文件,可正確生成并引用所構建的工件
在Android多模塊應用程序中
buildscript {
repositories {
maven {
url"https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath"net.ltgt.gradle:gradle-apt-plugin:0.15"
}
}
apply plugin:"net.ltgt.apt"
apply plugin:"java-library"
apply plugin:"idea"
idea {
module {
sourceDirs += file("$buildDir/generated/source/apt/main")
testSourceDirs += file("$buildDir/generated/source/apt/test")
}
}
dependencies {
// Dagger 2 and Compiler
compile"com.google.dagger:dagger:2.15"
apt"com.google.dagger:dagger-compiler:2.15"
compile"com.google.guava:guava:24.1-jre"
}
sourceCompatibility ="1.8"
targetCompatibility ="1.8"
雖然sourceSets允許您包括整個目錄結構,但無法在Android Studio(從1.2版開始)中排除其中的部分內容,如下所述:Android Studio是否從構建中排除類?
在更新Android Studio以支持Android來源的include / exclude指令之前,Symlinks會很好地工作。如果使用Windows,則本機工具(例如junction或mklink)可以完成Un * x符號鏈接。 CygWin也可以稍加強制性地創建它們。請參閱:Windows中的Git符號鏈接和如何在Windows 7中使用cygwin進行符號鏈接
不幸的是,我在Android Studio 2.1.2中通過符號鏈接得到以下行為:文件顯示在項目文件旁邊,并且具有干凈的版本,并且可以正常工作。但是在符號鏈接目錄中進行更改后的每個常規構建都會產生gradle錯誤:"無法找到源Java類:// MyClass.java,因為它不屬于任何源目錄:[ src目錄,包括" ... / src / main / java",其中符號鏈接位于軟件包文件夾中]"。
@ user905686是的!天啊。我花了幾個小時才發現其他人也遇到了同樣的問題。就像您說的那樣,符號鏈接可以進行干凈的"重建",但不能在后續運行中使用。它太費時間了,因此我剛剛更新了設置以引用實際目錄而不是符號鏈接。有點痛苦,但是它使開發速度更快。
我已經添加了錯誤報告issuetracker.google.com/issues/65343978,但是我不確定是否將其作為錯誤接受。
您可以將源文件夾添加到構建腳本中,然后進行同步。在此處的文檔中查找sourceSets:http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Basic-Project
我還沒有找到添加測試源文件夾的好方法。我已將源手動添加到.iml文件中。當然,這意味著它將在每次同步構建腳本時消失。
如果您不使用gradle(例如,通過APK創建項目),則可以通過Android Studio UI(從3.3.2版開始)進行操作:
右鍵單擊項目的根目錄,選擇Open Module Settings
點擊+ Add Content Root按鈕(右中)
添加您的路徑并點擊OK
以我的經驗(使用本機代碼),只要您的.so是用調試符號構建的并且來自相同的絕對路徑,就會自動識別源文件中添加的斷點。
總結
以上是生活随笔為你收集整理的在java中添加源_关于Java:如何在Android Studio中添加链接的源文件夹?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python 开发的 10 个小贴士,你
- 下一篇: qq音乐android升级版,QQ音乐A