Eclipseでは、ソースフォルダを「リンクされたソースフォルダ」としてAndroidプロジェクトに追加できます。 Android Studioで同じことを実現するにはどうすればよいですか?
または、外部フォルダを追加してgradleでビルドすることは可能ですか?
build.gradleで、以下をAndroidノードの最後に追加します
Android {
....
....
sourceSets {
main.Java.srcDirs += 'src/main/<YOUR DIRECTORY>'
}
}
正しい答えは:
Android {
....
....
sourceSets {
main.Java.srcDirs += 'src/main/<YOUR DIRECTORY>'
}
}
さらに、外部ソースディレクトリがsrc/main
の下にない場合、次のような相対パスを使用できます。
sourceSets {
main.Java.srcDirs += 'src/main/../../../<YOUR DIRECTORY>'
}
誰かが興味がある場合に備えて、Javaマルチモジュールアプリケーション内のビルドされたアーティファクトを正しく生成および参照する完全なAndroidモジュールgradleファイルがあります
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 Excludeクラスビルドから?
Android StudioがAndroidソースのinclude/excludeディレクティブをサポートするように更新されるまで、 Symlinks は非常にうまく機能します。 Windowsを使用している場合、junction
やmklink
などのネイティブツールは、Un * xシンボリックリンクと同等の機能を実現できます。 CygWin は、少し強制的にこれらを作成することもできます。参照: WindowsのGit Symlinks および Windows 7のcygwinでシンボリックリンクを作成する方法
ソースフォルダをビルドスクリプトに追加してから同期できます。次のドキュメントで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
がデバッグシンボルと同じ絶対パスから構築されている限り、ソースファイルに追加されたブレークポイントは自動的に認識されます。