【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);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值