2017-08-23 46 views
2

統一的Android項目啓用Multidex我有一個非常類似的問題,因爲這裏討論:Using Fabric with Multidex with an exported Unity project在與Crashlytics

兩個面料和Multidex(對於較舊的Android版本)需要增加應用程序子類AndroidManifest.xml文件的應用程序標籤。但是我不能在沒有錯誤的情況下同時包含這兩個類,並且我無法訪問這兩個類中的任何一個來修改它們並更改繼承層次結構。

(I need both of these together.) 
<application ... android:name="android.support.multidex.MultiDexApplication"> 
<application ... android:name="io.fabric.unity.android.FabricApplication"> 

我們的構建採用搖籃(相當於團結新支持的),如果打開的任何途徑。

我該如何解決這個問題?我願意反編譯和重建罐子,但到目前爲止,我所有努力去反編譯fabric-init.jar(包含Application子類)都失敗了。

+1

我覺得這是一個dup。它看起來像你有「太多的字段引用*的問題,並希望啓用Multidex出於這個原因。另一個解決方案是使用ProGuard從[this]中的其他答案建議(https://stackoverflow.com/q/ 42582850/3785314)問題如果ProGuard沒有足夠的減少它,那麼繼續使用Multidex解決方案 – Programmer

+0

我們正在調整我們所能做的一切,並且正在切換到Multidex。我的問題不僅僅是「如何啓用multidex」,它是「如何在Unity Android項目中啓用multidex,該項目也使用Crashlytics或Fabric」。問題是,這兩者都會導致與另一個的實現衝突。 – vargonian

+0

好吧我只是確保您已經嘗試使用ProGuard。 – Programmer

回答

0

您可以使用自定義Application類下一個內容:

protected void attachBaseContext(Context base) { 
    super.attachBaseContext(base); 
    // this one is needed to enable multidex in your application 
    MultiDex.install(this); 
} 

public void onCreate() { 
    super.onCreate(); 
    // this one is needed to init the Fabric SDK 
    FabricInitializer.initializeFabric(this, FabricInitializer.Caller.Unity); 
} 

此外,一個更解決方案,您可以點擊這裏,我創建了一個小型GitHub repo與描述如何讓它在點擊幾下。