由于清单冲突,Branch.io不适用于multidex

时间:2018-12-10 06:59:42

标签: android branch.io multidex

Branch希望我在清单文件中使用“ android:name”,但是我已经将其用于multidex。那么,如何克服这种冲突呢?

<application
    ...
    //android:name="io.branch.referral.BranchApp"
    android:name="android.support.multidex.MultiDexApplication"
    ...
</application>

2 个答案:

答案 0 :(得分:1)

这是BranchApp的完整代码:

public class BranchApp extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        if (BranchUtil.isTestModeEnabled(this) == false) {
            Branch.getInstance(this);
        } else {
            Branch.getTestInstance(this);
        }
    }
}

制作一个扩展MultiDexApplication的自定义Application类,并将此替代用于onCreate即可。

答案 1 :(得分:0)

Branch SDK具有自己的自定义活动和应用程序类。使用自己的自定义活动和应用程序类的其他插件可能会导致这些类之间发生“冲突”。解决这些冲突:

  1. 创建一个空的android库
  2. 将Branch插件以及其他插件添加到您的项目中
  3. 创建一个自定义的Activity和Application类,其中将包含所有插件的自定义逻辑
  4. 建立图书馆
  5. 将您的库添加到Unity项目
  6. 在清单的应用程序标记中将android:name更改为自定义应用程序类的名称
  7. 在清单的活动标签中将android:name更改为自定义活动类的名称

某些插件会扩展默认的AppController,这与Branch的Cardboard SDK插件一样。解决冲突:

  1. 将所有自定义AppController合并到一个。
  2. 注释其他AppController中的代码(或删除其他AppController)。

这里有一些Code Samples用于解决与其他第三方插件的冲突

如果您仍然遇到任何问题,请写信给Integrations@branch.io。