web-dev-qa-db-ja.com

Android Studio-サブディレクトリ内にモジュールを作成するにはどうすればよいですか?

Mod1、mod2、mod3の3つのモジュールがあるとします。

通常の場合、ファイルシステム階層は次のようになります。

[Android_root_dir]
build.gradle # list this file just to make it clear.
----mod1
----mod2
----mod3

しかし、私が欲しいのは:

[Android_root_dir]
build.gradle # list this file just to make it clear.
----modules
    ----mod1
    ----mod2
    ----mod3

Android Studio 1.1.0でそれを行う方法は?

PS:この記事を見つけましたが、機能しないようです。または、1.1.0ではなく以前のバージョンのASで機能します。 サブディレクトリ内でモジュールを移動するにはどうすればよいですか?

22
McArthor Lee

あなたはそれを行うことができます:

root
  build.gradle
  settings.gradle
  modules
    mod1
      build.gradle
    mod2
      build.gradle
    mod3
      build.gradle

あなたのsettings.gradle

include ':modules:mod1' , ':modules:mod2', ':modules:mod3'
33

include ':modules:mod1' , ':modules:mod2', ':modules:mod3'の種類で解決策が得られますが、ASはmodulesの空のモジュールを煩わしく生成します。この落とし穴に対処するには、 gradle github reposettings.gradleを参照してください。基本的に、すべてのサブプロジェクトがトップレベルのものとして含まれ、プロジェクトディレクトリがサブディレクトリ内にあるように設定されます。このトリックはあなたのニーズに完全に対処するはずです。

include 'mod1'
include 'mod2'
...
include 'modX'
rootProject.name = 'gradle'
rootProject.children.each {project ->
    String projectDirName = "modules/$project.name"
    project.projectDir = new File(settingsDir, projectDirName)
    assert project.projectDir.isDirectory()
    assert project.buildFile.isFile()
}
6
Farley

私のプロジェクト構造

Coding
   app
   Push-dir
     coding-Push
     Push-xiaomi
   setting.gradle

settings.gradleファイル

// need repeat declarative, i think it's bug
include ':app'
include ':coding-Push'
include ':Push-dir:coding-Push'
include ":Push-xiaomi"
include ":Push-dir:Push-xiaomi"

私は解決するためにsettings.gradleで繰り返し宣言を使用しました。 (Android Studio 3.0)、ASのバグだと思います。 ASを再起動する必要がある場合があります。

1
codingnow