2014-03-02 49 views
0

此問題源於我不是Gradle專家,我來自Eclipse + Maven背景。在Android Studio中,請參閱其他模塊的.apk類

在Maven中,我能參考我的apk的項目從另一個(一Robolectric分項目爲例),作爲android-maven-plugin在我的本地庫既推動和.apk(未dexed).jar

我該如何在Android Studio + Gradle中實現相同?

  • 我試着將apply plugin: 'java'添加到我的應用程序項目中,但是java插件與android插件不兼容。
  • 我試圖建立我的Java插件應用程序的一個子模塊只有build.gradle,但R.java不產生這樣:

    sourceSets { 
        main { 
         java.srcDirs = parent.android.sourceSets.main.java.srcDirs 
        } 
    } 
    

是否有任何其他的方式做這個?

EDIT4:發佈解決方案。

+0

可能重複http://stackoverflow.com/questions/19307341/android-library-gradle-release-jar ) –

+0

是的,加入下面的解決方案: '''任務androidJar(類型:Jar){from android.sourceSets.main.allJava }''' –

回答

0

我編輯的解決方案實際上效果很好。我在這裏報告解決方案。 當心,它硬編碼的類文件的路徑,我無法找出如何使用其中的$ buildType(有沒有辦法?)

def variantName = "debug" // init to debug 

apply plugin: 'android' 

android { 
    ... 
    applicationVariants.all { variant -> 
     variantName = variant.name 
     buildDebugJar.dependsOn variant.packageApplication 
    } 
} 

// Builds the jar containing compiled .java files only (no resources). 
task buildJar(type: Jar) { 
    description 'Generates the jar file along with the apk.' 
    from new File("$project.buildDir/classes/$variantName") 
} 

configurations { 
    jarOfApk 
    transitive = false 
} 

artifacts { 
    jarOfApk buildJar 
} 

而且引用模塊(S),將宣佈一個新的依賴關係是這樣的:

compile project(path: ':app', configuration: 'jarOfApk') 
[Android的圖書​​館搖籃釋放JAR(的