0

使用Google Play Savegames和Android flavors時遇到奇怪的錯誤。 爲了測試我的遊戲,我有兩個不同的flavors,dev進行測試,release進行發佈。Google遊戲:使用另一種口味刪除雲端保存遊戲

我使用Google Play savegames爲這兩種口味使用相同的谷歌帳戶。似乎發生的情況是,無論何時將存儲遊戲從其中一個版本推入雲中,其他版本都無法再找到它的存儲遊戲。

通過啓用兩個flavors的savegame可能會導致某些類型的衝突,這可能導致我的遊戲存檔丟失?如果它們有不同的軟件包名稱(com.company.mygame和com.company.mygame.dev),或者Google Play Games如何處理這個問題,它們不應該被保存爲雲中的兩個不同遊戲嗎?

+0

我沒發現什麼是預期或谷歌如何玩遊戲處理保存遊戲的應用程序不同口味的任何文件。你可以創建一個[ticket](https://github.com/playgameservices/android-basic-samples/issues/new)來驗證它是如何處理的以及期望的行爲。 –

回答

1

我自己解決了這個問題,這是Proguard的問題。 Proguard重新命名我的存儲遊戲數據中的枚舉名稱,即使savegamedata本身已被排除在混淆之外。排除對存儲遊戲數據中的所有變量名稱都很有效,但枚舉名稱失敗。

加入Proguard規則這些線路解決了這一問題:

# Application classes that will be serialized/deserialized over JSON, keepclassmembers 
-keepclassmembers class com.mycompany.mygame.Utility.SaveGameData** { *; } 

# all my enums that were renamed 
-keep public enum com.mycompany.mygame.Entities.Player$** { 
    **[] $VALUES; 
    public *; 
} 

-keep public enum com.mycompany.mygame.Entities.Enemy$** { 
    **[] $VALUES; 
    public *; 
} 

-keep public enum com.mycompany.mygame.Entities.Quest$** { 
    **[] $VALUES; 
    public *; 
} 

-keep public enum com.mycompany.mygame.Entities.Room$** { 
    **[] $VALUES; 
    public *; 
} 
+0

嗨,夏娃。關心更具體?更多關於什麼是錯誤的細節,你改變了什麼以使其工作可能有助於未來的人。 :)乾杯! –

+1

你好AL,你說得對,我非常熱情,我找到了一個解決方案,我忘了給一個正確的解釋,這裏是:) – Eve