Using Fabric with Multidex with an exported Unity project

寵の児 提交于 2019-12-31 04:22:06

问题


I have exported my Unity project to be able to use multidex. Problem is I have to set the android:name in the project's androidmanifest to "android.support.multidex.MultiDexApplication" when I already have this "io.fabric.unity.android.FabricApplication" set for fabric.

I have tried initializing Fabric manually but then I get this error : AndroidJavaException: io.fabric.unity.android.FabricInitializationException: Fabric did not find a valid application context.

I have found that someone had a similar problem but it didn't got solved: https://twittercommunity.com/t/unity-android-plugin-conflicts/79947?source_topic_id=83751

Thanks in advance for your help!


回答1:


Add next lines to your Application method:

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);
}

Also, one more solution you can check here, I created a small GitHub repo with description how to make it in few clicks.




回答2:


Was having the same problem.

Ended up creating a new android studio project. Imported Fabric-(some version).jar and Fabric-init.jar which I got from the android plugins folder inside the Unity project.

Decompiled the Fabric-init.jar and modified the FabricApplication.java class in order to extend from MultiDexApplication instead of Application.

Built the project and extracted the new FabricApplication.class from the build folder in the Android Studio project/app.

Replaced the FabricApplication.class inside the Fabric-init.jar of the Unity project with the new one.

Left "io.fabric.unity.android.FabricApplication" as the application name in the manifest.

Tested in android 4.4 and it worked. Not ideal though because I'll have to do it with every plugin update, but considering I'm a noob with this gradle thing (and Android projects in general), I'm beyond happy that at least it worked.

If anyone comes up with a better approach, please let us know!



来源:https://stackoverflow.com/questions/42971043/using-fabric-with-multidex-with-an-exported-unity-project

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!