2015-06-19 64 views
2

我有產品風味的麻煩,我的項目包含庫名爲核心和應用程序命名,即應用程序Android Gradle編譯項目的特定風味

在我應用模塊的build.gradle文件我編譯這個庫項目是這樣的:

dependencies { 
    compile project(':Core') 
} 

這是工作正常,但問題是當我想介紹兩個我的圖書館特定產品的口味項目「Core」和我的應用程序模塊「App」。

核心buid.gradle文件我已經定義了一個產品的風味:

productFlavors { 
    flavor1 { 

    } 
} 

sourceSets.flavor1 { 

     java { 
      exclude '**/SomeFilePath/*' 
     } 
} 

現在一旦我添加了這個新口味,以我的核心庫,我想改變的build.gradle我App應用程序模塊,這樣我就可以從我的Core項目中僅編譯名爲flavor1的這個productFlavor。

我想這樣的事情,但它失敗,錯誤flavor1Release「與名爲沒有配置‘’發現」。

dependencies { 
    compile project(path: ':Core', configuration: 'flavor1Release') 
} 

就來總結這一切,我想有我應用應用模塊在多種口味,並且每個這種口味會從我的核心庫項目編譯不同的味道。這樣,來自我的App模塊的每種口味都將具有包含在此Core庫中的不同文件。

有誰知道我該怎麼做到這一點?

回答

0

正如我所看到的你明確提供配置來編譯你的項目。但你並不需要這麼做,因爲「機器人工作室」已經提供了該選項

To work on files from a particular flavor, click on Build Variants on the left of the IDE window and select the flavor you want to modify in the Build Variants panel,

enter image description here

有關產品的口味,你需要指定以下的事情:

productFlavors { 
     demo { 
      applicationId "com.buildsystemexample.app.demo" 
      versionName "1.0-demo" 
     } 
     full { 
      applicationId "com.buildsystemexample.app.full" 
      versionName "1.0-full" 
     } 
    } 
+0

我想沒有這個配置也,但我不能編譯它。 當我在我的Core項目中添加產品風味「flavor1」時,我無法再從我的App應用程序模塊進行編譯。 我在我的應用程序模塊依賴關係{編譯項目(':Core')} 有了這個我可以正常編譯我的核心項目,但是當我添加這種味道核心build.gradle我無法編譯它從應用程序模塊了。 productFlavors {flavor1 {}} 我缺少什麼? build.gradle中唯一的改變就是這個新的風格?一旦我刪除這個flavor1它可以再次編譯Core項目? – user20902

+0

@ user20902檢查已編輯的答案 –

+0

我添加了這個,但現在出現此錯誤:錯誤:庫項目無法設置applicationId。 applicationId在風格'flavor1'中設置爲'com.example.Core'。 這個核心項目是庫,我沒有定義這個applicationId的任何地方,只是在你指出缺少這種味道。 你知道這是什麼問題嗎? – user20902