[Unity] Didn‘t find class “com.xx.xx“,[zip file “/data/app/com.xx.xx-bTzzxkDco4BxPLjQXoJGog==/b

一、遇到的问题

  1. 项目背景

Unity与Android交互,通过调用原生接口上报打点

  1. 问题描述

客户端频繁的触发打点任务,调用Android端的接口,应用闪退,错误信息:“java.lang.ClassNotFoundException: Didn’t find class "com.google.xxx.xxxx"
在这里插入图片描述

二、原因

当您的应用及其引用的库包含的方法数超过 65536 时,您会遇到一个构建错误,指明您的应用已达到 Android 构建架构规定的引用限制。引用

三、解决方法

  1. 启用MultiDex 解决应用及其引用的库包含的方法数最大 65536限制
  2. 具体配置请参考官方示例,网上也有很多使用MultiDex 解决的方案,但是教程中使用的方法太老了,对我的问题无效,特此贴出官方的解决方案
  3. 需要补充一点,配置好后,如何启用MultiDex
    (1) .Androidmanifest文件中指定Application为MultiDexApplication,对于一般不需要在application中执行初始化操作的app可以采用这种。但是我使用该方式,应用打开直接闪退了
<application
        android:name="androidx.multidex.MultiDexApplication"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme">
        ……>
(2).自定义Application并继承MultiDexApplication。这种方式解决了我的问题
public class MyApplication extends  MultiDexApplication
{
    
    
	//你的代码
}
(3).重写Application的attachBaseContext方法
public class MyApplication extends Application{
    
    
    @Override
    protected void attachBaseContext(Context base) {
    
    
        super.attachBaseContext(base);
        MultiDex.install(this);
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_42186644/article/details/123096039
今日推荐