我已导出Unity项目以便能够使用multidex。问题是当我已经为面料设置了“io.fabric.unity.android.FabricApplication”时,我必须将项目的androidmanifest中的android:name设置为“android.support.multidex.MultiDexApplication”。
我已尝试手动初始化Fabric,但后来我收到此错误: AndroidJavaException:io.fabric.unity.android.FabricInitializationException:Fabric未找到有效的应用程序上下文。
我发现有人有类似的问题,但没有解决: https://twittercommunity.com/t/unity-android-plugin-conflicts/79947?source_topic_id=83751
提前感谢您的帮助!
答案 0 :(得分:3)
在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,其中包含如何通过几次点击进行操作的说明。
答案 1 :(得分:2)
遇到了同样的问题。
结束创建一个新的android工作室项目。 我从Unity项目中的android插件文件夹中导入的Fabric-(某些版本).jar和Fabric-init.jar。
对Fabric-init.jar进行了反编译并修改了FabricApplication.java类,以便从MultiDexApplication而不是Application扩展。
构建项目并从Android Studio项目/ app中的build文件夹中提取新的FabricApplication.class。
将Unity项目的Fabric-init.jar中的FabricApplication.class替换为新项目。
将“io.fabric.unity.android.FabricApplication”留作清单中的应用程序名称。
在android 4.4中测试过并且有效。 虽然不是很理想,因为我必须对每个插件更新都这样做,但考虑到我是这个gradle事物(和一般的Android项目)的菜鸟,我很高兴至少它起作用了。
如果有人想出更好的方法,请告诉我们!