2016-07-04 60 views
0

在Android Studio中,當我使用IDE快捷方式(ctrl + click)打開一個類(從模塊A到模塊B中的類)時,我期望打開該類的.java文件。如果我點擊的類不在同一模塊中,它會帶我到該類的反編譯版本。如何配置Android Studio項目以使用實際源而不是反編譯?

compile project(':moduleB')

我很好奇,如果是有其各自的模塊中只有搖籃配置代替手動方式Choose Sources...的類鏈接到源代碼的方式?

enter image description here

+0

你有'settings.gradle'文件嗎? – njzk2

+0

是的,我做'include':moduleB',':moduleC'' – epool

回答

0

最後,我找到了一個解決辦法,以解決我的問題,不知道這是否是解決它的最好方法,但它爲我工作。我很樂意聽到更好的方法。

在我moduleAbuild.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") } 
} 

UPDATE

我的問題是,我是使用通過使用moduleB過一個moduleC。所以Android Studio試圖向我展示編譯版本。我終於用這幾行修正了:

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

在這之後,我的'moduleB'類方法被標記爲'Method is never used',但它們實際上被用於= /。 – epool

+0

問題在上次更新時解決。 – epool

+0

考慮提供的方法,而不是編譯,因爲它將編譯,但不包括依賴關係。 (在moduleC中,用'provided project(':moduleB')'替換'compile project(':moduleB')')') – njzk2

相關問題