导入期间自动附加源

the*_*ace 6 android android-studio android-gradle-plugin

我有一个包含多个模块的项目,一个模块使用其他模块功能.因此,具有依赖项的模块具有编译依赖项中的jar文件.因此,当我尝试转到源代码时,它会转到jar中的.class文件.相反,我希望它转到依赖模块的.java文件.

一种方法是手动执行AttachSources.

因为,我有多个具有多个依赖关系的模块;

  • 有没有办法在导入过程中通过某种方式执行它,比如在每个模块下都有一个源位置的sourcePath.txt.

项目结构:

项目A:

  • ModuleAA(取决于ModulesAB)
  • ModuleAB(取决于ModulesAC)
  • ModuleAC

还有更多模块.

xia*_*omi 3

为了从项目中访问模块的源代码,而不是导入 jar,您必须使用compile project (':module').

例如,如果我必须构建您的结构,它将如下所示:

项目A:(在com.example.projecta下)

dependencies {
    ... //Other dependencies(appcompat, jar files...)
    compile project (':moduleaa') //Dependent of moduleAA
    ...
}
Run Code Online (Sandbox Code Playgroud)

ModuleAA:(在 com.example.moduleaa 下)

dependencies {
    ...
    compile project (':moduleab') //Dependent of moduleAB
    ...
}
Run Code Online (Sandbox Code Playgroud)

ModuleAB(在 com.example.moduleab 下)

dependencies {
    ...
    compile project (':moduleac') //Dependent of moduleAC
    ...
}
Run Code Online (Sandbox Code Playgroud)

ModuleAC(在 com.example.moduleac 下)

dependencies {
    ...
}
Run Code Online (Sandbox Code Playgroud)

现在 ProjectA 可以访问任何模块及其依赖项。

要在项目和模块的源代码之间导航,您可以使用快捷键来显示源代码。您可以在以下位置找到键盘映射:File > Settings > Keymap > Main menu > View > Jump to source ( or Show source)。(通常是 Control + 左键单击,或 F12)。

编辑

如果您在其他项目中有一个模块,您需要导入该模块并且能够像当前项目中的模块一样对其进行修改,则可以使用以下命令修改当前项目的 settings.gradle:

include ':module'
project(':module').projectDir = new File("/<path_to_module>/other_project/module")
Run Code Online (Sandbox Code Playgroud)

然后该模块将出现在您当前的项目中。