Android 4.2以后,使用so文件无法打包到apk中

本文介绍了解决Android Studio在4.2及以上版本打包时出现的“Entryname‘classes.dex’collided”错误的方法,并讨论了该配置对友盟推送集成的影响及解决策略。
部署运行你感兴趣的模型镜像

Android Studio 升级到4.2或最新版本,比如Dolphin | 2021.3.1,有时打包的时候会出现提示“Entry name ‘classes.dex’ collided”。

通过网上查询发现,需要在build.gradle的android下配置

packagingOptions {
        exclude 'classes.dex'
        exclude '**.**'
    }

可以避免这个问题。通过这种方式确实解决了这个问题,但是后面由于项目需要集成友盟推送,在集成过程中出现了新的问题。

通过友盟推送最新的自动化集成方式,在build.gradle中引入了最新的推送版本push:6.5.5,里面默认集成了libtnet-3.1.14.so和libumeng-spy.so
功能上面都是OK的。
但是在实际运行上发现无法获取device_Token,按照提示是说appkey和message secret是否配置正确或查看apk文件,检查libs目录中so文件夹,确保每个文件夹中都有libtnet-xxx.so。

通过查看apk文件发现里面没有libs文件夹。刚开始以为是jar包或so文件冲突导致的,但是也没有报错的地方。
通过各种排查发现是因为上面的那个build配置导致的。把上面的那个配置去掉再进行打包就是没问题的了。

至于一开始的“Entry name ‘classes.dex’ collided”问题,可以通过删除app/build 和app/release目录下所有apks来进行解决。

问题解决!

您可能感兴趣的与本文相关的镜像

Langchain-Chatchat

Langchain-Chatchat

AI应用
Langchain

Langchain-Chatchat 是一个基于 ChatGLM 等大语言模型和 Langchain 应用框架实现的开源项目,旨在构建一个可以离线部署的本地知识库问答系统。它通过检索增强生成 (RAG) 的方法,让用户能够以自然语言与本地文件、数据库或搜索引擎进行交互,并支持多种大模型和向量数据库的集成,以及提供 WebUI 和 API 服务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值