2013-07-02 101 views
4

我在理解Android Studio中的Build Flavors時遇到了麻煩。我正在嘗試實現一個簡單的事情:用一個小的代碼更改來構建2個簽名的APK。 「專業版」APK在res/layout/中有不同的drawer.xml。我已經閱讀了文檔和StackOverflow中的一些內容,但我沒有看到我的build.gradle更改發生任何事情。Android Studio Gradle Build Flavors

我目前build.gradle文件:

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:0.4.+' 
    } 
} 
apply plugin: 'android' 

dependencies { 
    compile files('libs/android-support-v4.jar') 
    compile files('libs/GoogleAdMobAdsSdk-6.4.1.jar') 
} 

android { 
    compileSdkVersion 17 
    buildToolsVersion "17.0.0" 

    defaultConfig { 
     minSdkVersion 14 
     targetSdkVersion 17 
    } 

    productFlavors { 
     lite { 
      packageName = 'com.mikebdev.refuel' 
     } 
     pro { 
      packageName = 'com.mikebdev.refuelpro' 
     } 
    } 

    sourceSets{ 
     android.sourceSets.pro { 
      res.srcDirs = ['src/main/res_pro'] 
     } 
    } 
} 

我創建了一個新的文件夾:

/src/main/res_pro/layout/drawer.xml 

我在做什麼錯在這裏?

編輯

我更新了我的build.gradle文件之上。

因爲其他一些不穩定因素,我重置了整個Android Studio之後,我現在能夠在左下角選擇我的構建變體(lite-debug,lite-release,pro-debug,pro-release)爲什麼即使這些調試AND發佈變體?

這似乎現在工作,因爲它應該。

我在下面

回答

6

由於其他不穩定性而重置我的整個Android Studio後,現在可以在底部爲什麼即使是那些調試版本和發行版變體呢?

我用模塊創建了一個全新的項目,複製&粘貼了我從我之前從eclipse導出的舊項目中的所有內容。

現在它可以工作。

我的Android工作室在我重新安裝之前已經壞了。比應該有更多的崩潰,一些奇怪的行爲和這樣的東西。

0

一個回答您所使用生成類型和口味這個構建腳本。爲了改變xml文件,你只需要口味。嘗試刪除buildTypes並使用productFlavor塊作爲android的子級。 專業風味res文件夾的更改應該在主sourceSet的所有更改後進入sourceSets塊

+0

好吧我剛剛發現了一些可能是所有邪惡的根源。 '[PROJECT]不支持gradle'怎麼死?按照文檔中的描述,我從Eclipse導入項目。我該如何解決? –

+1

請參閱此[答案](http://stackoverflow.com/a/17168175/1237841)。可能與您的問題無關,但您應該對當前版本或「gradle:0.4。+」使用「gradle:0.4.3」以始終獲得最新版本。 – rivare

+0

我的android工作室有點搞砸了,我重新安裝了它。現在,gradle似乎完全破碎哈哈。 –

1

你做錯了什麼是你把你的文件在/src/main/res_pro/layout/drawer.xml而不是設置在gradle中。您創建的風味的默認位置將是:

/src/pro/res/layout/drawer.xml