如何配置Android Studio项目以使用实际源而不是反编译?

时间:2016-07-04 19:13:13

标签: android android-studio

在Android Studio中,当我使用IDE快捷方式(ctrl + click)打开一个Class(从模块A到模块B中的类)时,我希望打开该类的.java文件。如果我点击的Class不在同一模块中,它将带我进入该类的反编译版本。

compile project(':moduleB')

我很好奇是否可以通过 Gradle 配置而不是手动方式将类链接到其各自模块中的源代码 {{1} }?

enter image description here

1 个答案:

答案 0 :(得分:0)

最后我找到了解决问题的解决方法,不确定这是否是解决此问题的最佳方法,但它对我有用。我愿意听取更好的方法。

在我的 moduleA build.gradle文件中,我创建了一个包含所有模块名称依赖项的数组:

def moduleNames = ['moduleB', 'moduleC', ...]

然后我将sourceSets配置为我的模块源文件夹:

android {
    ...
    sourceSets {
        moduleNames.each {
            main.java.srcDirs += "$rootDir/$it/src/main/java/"
            androidTest.java.srcDirs += "$rootDir/$it/src/androidTest/java/"
            test.java.srcDirs += "$rootDir/$it/src/test/java/"
        }
    }
}

最后我用以下代码编译我的模块:

dependencies {
    ...
    moduleNames.each { compile project(":$it") }
}

<强>更新

我的问题是我使用的moduleC也在使用moduleB。所以Android Studio试图向我展示编译版本。我终于解决了这些问题:

compile(project(':moduleC')) {
    exclude module: 'moduleB'
}
compile project(':moduleB')