2017-07-10 37 views
1

我目前正在通過所提供的遷移指南我們的項目遷移到新gradle這個插件(3.0.0):本地的Android庫模塊和com.android.tools.build:gradle:3.0.0

https://developer.android.com/studio/preview/features/new-android-plugin-migration.html

在我們的Android項目中,我們有一個庫模塊和2個應用程序模塊。目前,庫模塊沒有風味,只有調試版本的構建類型,而應用程序有多種風格和構建類型。

我在找的是庫模塊的buildType必須與應用模塊剛好匹配。例如,

如果應用程序模塊具有名爲debugProguard的buildType,那麼庫模塊還必須具有名爲debugProguard的buildType。這意味着,在庫模塊我最終不得不與任何機構申報buildTypes:

buildTypes { 
     ... 

     debugProguard { 
     } 

     ... 
    } 

(從這裏開始: Android Studio 3.0 Error. Migrate dependency configurations for local modules

反正是有避免這種情況?圖書館需要消費應用程序的體系結構的一些知識似乎很奇怪。

我想要做的,理想情況是告訴構建系統使用該庫的某個buildType作爲應用程序的buildType。例如,對於應用程序中的buildType x,y,z,在庫中使用'debug',對於i,j,k使用'release'。

在此先感謝

回答

2

他們剛在Canary 7發佈的Android 3.0工作室的解決了這個:

You can now specify an alternative build type the consumer should use from the producer using the android.buildTypeMatching property as shown below. The plugin uses the alternative build type only if a matching build type is not found.

android { 
    … 
    // Let’s say your app configures a ‘staging’ build type and a library module 
    // it depends on does not. You can use the property below to tell the Android plugin 
    // to use a library’s ‘debug’ build type instead. 
    buildTypeMatching ‘staging’, ‘debug’ 
} 
+0

輝煌的東西。謝謝! – MattWilliams89

+0

它爲我引發錯誤,這是我的應用程序和庫的構建類型https://gist.github.com/anonymous/1dda4a85d4d3c021a8fc07251901f9f2 – DroidLearner

+0

@DroidLearner什麼是錯誤?如果提出新問題可能會更好 –