2016-02-06 19 views
1

我在Android Studio的Gradle中創建了2個風味,並且將MainActivity文件放在它們各自的文件夾結構中。在發佈時找不到風味活動

這是該項目的外觀:

enter image description here

這是搖籃味部分:

productFlavors { 
     free { 
      applicationId "com.xxxxx.yyyyy.free" 
      versionName "1.0.0" 
     } 
     full { 
      applicationId "com.xxxxx.yyyyy" 
      versionName "1.0.0" 
     } 
    } 

不幸的是,當我使用的味道,在MainActivity被認爲是未設置。

免費味:

enter image description here

全部味:

enter image description here

該項目可以在兩個口味進行編譯,它只是不能在運行完整的味道,因爲它找不到默認活動。 這兩個文件的差異很小。

我應該檢查什麼?

回答

2

也許不是直接解決你的問題,但你有沒有考慮過製作一個純粹的Java助手類,爲你的MainActivity提供不同的功能?

這裏的問題似乎是你的移動MainActivity不是由AndroidManifest全模式下的認可,但如果你有2個版本助手類的一切應該是不錯的

編輯 如果你想要指定兩個不同的活動,請在AndroidManifest中使用相對路徑。

<activity android:name=".MainActivity"> 

要謹慎嘗試重用你的兩個活動,以自己的任何頭痛攢下來的道路雖然

+0

我的MainActivity文件取決於不同的佈局XML文件之間儘可能多的公共代碼成爲可能,所以我不能真的把它與一個純粹的助手類分開。 – Nestor

+0

它是不同的味道只是xml佈局?您可以將res/layout/foo.xml文件放在不同的flavor文件夾下。 MainActivity可以檢查某些視圖是否可用並相應地調整其行爲 – keith

+0

但是,如果視圖不同,視圖ID也不同,因此MainActivity無法找到_R.id.viewInFree_本身。 – Nestor