一、发布Android到底需要多少dll和so文件
首先要知道的是dll文件是干啥用,中文是动态链接库,简单的说就是,提前做好的一些函数放在里面了,然后程序可以从里面调用,问题是,实际上 dll 是windows平台下的概念,也就是说如果在PC下运行的好好的,到了Android运行有问题,那么一定是so文件的问题,而不是dll文件的问题。
然后,so文件是什么呢,是给Android用的,在pc环境下有没有或者对不对,对Editor运行的结果都没有影响。so文件其实可以理解为Linux的动态链接库。因为Android和Linux的架构是一致的,所以才会用到so文件。
- 针对sqlite3我们需要这几个文件:Mono.Data.Sqlite.dll(从对应版本的unity目录 Unity\Editor\Data\MonoBleedingEdge\lib\mono\2.0 中复制) 和 sqlite3.dll(从官网 https://www.sqlite.org/download.html 中下载适合开发用电脑的版本,而不是Android版本)
- 针对发布Android平台,我们需要再加这几个文件:System.Data.dll(从对应版本的unity目录 Unity\Editor\Data\MonoBleedingEdge\lib\mono\2.0 中复制) 和 libsqlite3.so(在此下载)
- build 如果提示重复了,请删除!
二、dll文件和so文件的配置问题
首要问题是下载正确的版本,上一节已经讲了,然后现在需要做的是在Unity中配置相关的属性,这里需要提的一点是版本!Unity3D的版本!并不是所有版本都是稳定的,比如我以前的随笔中提到过的发布web GL的问题:IL2CPP问题,就是个版本问题,不过Android的目前看来是最新的稳定版本肯定最好用。我现在是 2019.2.0 版本,导出的APK无误。
Mono.Data.Sqlite.dll 和 sqlite3.dll文件的配置都是一样的:
System.Data.dll文件的配置:因为这个是只给Android用的,需要打包在包里,而在PC环境中不需要,所以只选择安卓平台。如果全平台,会跳红bug,在2017版本中是没有这个bug的,在2019版本中就有了,我是在升级之后遇到的这个问题,就是告诉你这个文件多余的意思,这时候不要删除,虽然unity editor测试很好,但是apk之后没有这个文件,程序依旧GG,请如下配置。
libsqlite3.so文件的配置:正如我前文提到的so文件对应平台的,在旧的unity版本中,发布Android是全平台的,也就是说unity3d默认你的so也适应全平台,但是网上下载的这里的so文件只对应armv7平台(也就是主流的平台,v8向下兼容),故应该这样配置。
如果so文件配置不好,很容易出现下图的问题 Database is not open ******balabala
============ 欢迎各位老板打赏~ ===========
与本文相关的文章
- · unity3D导出模块给android使用
- · XPosed模块开发:XPosed入门与登陆劫持演示
- · 解决android 安卓中横屏、竖屏切换 应用崩溃问题
- · 解决listView中textview超链接导致listitem点击事件失效问题
- · Android中LinearLayout的点击事件如何包含内部的子控件?
- · 关于Fragment 不响应onActivityResult的情况分析
- · Picasso-Android开源图片异步加载库
- · 如何用Fiddler对手机(安卓/iOS)数据进行抓包
- · 解决android webview无法上传的解决办法
- · PANIC: Could not open:my_avd.ini完美解决
- · 在 Android 模拟器中启用摄像头支持
- · Please use Android Tools > Fix Project Properties