【问题标题】:Enabling Multidex in a Unity Android project with Crashlytics使用 Crashlytics 在 Unity Android 项目中启用 Multidex
【发布时间】:2018-02-01 13:38:39
【问题描述】:

我有一个与此处讨论的非常相似的问题:Using Fabric with Multidex with an exported Unity project

Fabric 和 Multidex(对于较旧的 Android 版本)都需要将 Application 子类添加到 AndroidManifest.xml 文件的应用程序标记。但是我不能毫无错误地同时包含这两个类,而且我无权访问这些类中的任何一个来修改它们和更改继承层次结构。

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

我们的构建使用 Gradle(在 Unity 中相当新的支持),如果这打开了任何途径。

我该如何解决这个问题?我愿意反编译和重建 jar,但到目前为止,我所有反编译 fabric-init.jar(包含 Application 子类)的努力都失败了。

【问题讨论】:

  • 我觉得这是一个骗局。看起来您遇到了“字段引用过多*”的问题,并因此希望启用 Multidex。另一个解决方案是按照this 问题中其他答案的建议使用 ProGuard。如果 ProGuard 没有充分减少它,请继续使用您的 Multidex 解决方案。
  • 我们已经完成了所有我们能做的事情,我们正在切换到 Multidex。我的问题不仅仅是“如何启用 multidex”,而是“如何在同样使用 Crashlytics 或 Fabric 的 Unity Android 项目中启用 multidex”。问题是启用这两者会导致与另一个的实现发生冲突。
  • 好的,我只是确保您已尝试使用 ProGuard。

标签: android unity3d android-multidex google-fabric


【解决方案1】:

您可以使用自定义的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 ,并描述了如何通过几次点击完成。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-29
    • 2017-06-22
    • 1970-01-01
    相关资源
    最近更新 更多