Unity使用aar打出apk过程一览

前言

在做Android打aar包给Unity使用时,发现Android打的包可能有各种各样的问题,而Unity可能由于自身工程过大造成打包时间极长,遂建立简易Unity工程对aar包进行测试,缩短因aar包导致的打包时间,如下进行一次记录。
注:Unity的游戏体概念相当于java的对象,组件概念相当于java的属性,只不过这个组件本身也是一个对象其内部还有具体属性

步骤总结:

一.Unity工程交互文件放置
二.Unity工程交互操作设置
三.Unity工程进行打包设置
四.我的工程相关报错

开始操作

  • 一.Unity工程交互文件放置
    1.建立相关文件夹存储资源 此处建立的文件夹主要有Resources(Unity官方定死的名字)Script(自定义)Plugins \ Android(Unity官方定死的名字)
    2.至Project视图中在Assets 文件新建Resources文件夹、Script文件夹、Plugins文件夹及其子文件夹Android文件夹,
    Script文件夹就用来存储测试的C#脚本代码
    image.png

    看一下当前Unity demo关于安卓文件夹目录
    image.png

    3.将android打好的app-debug.aar包放置与Plugins \ Android文件夹下
    4.将aar包中的AndroidManifest.xml清单文件拖至本文件夹下,同时将此清单文件中的包名改为Unity打包的PlayerSetting中设置的一样(aar中清单文件与本文件夹下清单文件包名必须不同,且除包名外的其它部分必须一致,否则会遇到问题)

5.将你所用到的第三方服务的so文件放置于 Android / libs文件夹下


image.png

6.将所用的资源文件放置assets文件,上图含有字体文件,百度地图SDK所用图片及个性化地图配置文件


image.png

  • 二.Unity工程进行交互设置
    1.选中场景已有对象或者右击新建一个对象,用于作点击按钮(此处选择新建一个Button对象)
    image.png
  1. 再建立一个空游戏体专门用来挂载各种Click脚本取名为“GameClick”


    image.png
  2. 选中刚刚创立的名为GameClick空游戏体将自己写的的脚本拖动挂上去,使其成为一个组件(组件相当于一个对象的属性,只不过这个属性是一个对象),此处我的脚本是 StartAndroid
    image.png

    image.png
  3. 选中Button对象,在其Inspector视图下点击Button属性中的加号为Button游戏体添加点击事件


    image.png

    image.png
  4. 然后 将GameClick拖至刚刚为Button游戏体添加的点击事件中,位置见下图红框处


    image.png

    6.再点击No Function 鼠标移动至你挂在脚本名那一栏选中你想使用的的点击方法(点击方法是自己在脚本里写的)


    image.png

  • 三.Unity工程进行打包设置(此时android aar包已经打包完成)

PlayerSettings

1.包名结构:com.公司名.项目名

image.png

1).Unity里两处公司名、项目名 建议与Package Name里面的一致,不保持一致不影响包名
2).包名可以是大小写,但是一般为小写,在android开发中约定俗成的包名为公司域名反置+项目名,譬如项目名为gameover,公司域名为www.biabia.com,则项目包名为com.biabia.gameover;www.lulu.com,则为 com.lulu.gameover。
3).ProductName为安装后launcher(启动logo)下的名称,在中国一般为中文名,譬如QQ的名称为QQ,支付宝的名称为支付宝,所以不可随意设置,一般设置为最终应用名称。

2.Build System,由于现在AnddroidStudio都是使用Gradle构建的,所以Unity当选择Gradle(在高版本中取消了此选择项,就是由Gradle脚本构建)


11.png

3.一些设置


image.png

此处的一些设置入上图只需要动红框部分即可,Target Api Level实则为当前编译目标版本,其可以向下兼容,意思是如果你的手机是7.0,则其必须大于7.0,此处Automatic其实已经默认为支持的最高版本,无需特殊设置,Minimum API Level则是运行最低版本,低于此设置版本的手机系统都无法正常运行即将打包的软件,这就设置了软件运行环境下限,可以避免许多问题。譬如Android 系统版本迭代后,高版本与低版本开发技术手段产生差异,那么低版本就得做兼容处理,兼容则是使用低版本开发手段再写一遍,否则就会崩溃,举个栗子,Android4.0的安全性不够高,其系统大部分都可以被高度定制,但是5.0以后则改进了很多,一些用于自定义系统的产品就会选用5.0以下譬如PDA开发厂商或者夜神模拟器,针对这些系统开发应用使用新技术开发包——MateriaDesign,下的一些动画与控件或者注解就会使应用崩溃,为了兼容低版本你就必须if else的判断当前系统版本,针对版本做相应的操作,系统冗余码很多,那部分收集用户也不是你的目标用户,所以就可以用最低版本限制,不让这部分手机用户玩。
  • 四.我的工程相关报错(相关报错可能有误,谨慎查看)
    1.此为包名不遵循规则的的报错
    image.png

    2.此为清单文件报错
    image.png

    3.classes转dex报错
    这个报错截图因为包被替换现在无法复现
    原因:aar包中引用的Unity classes.jar并非本机Unity版本的classes.jar。
    解决:从Unity软件安装路径(非当前Unity工程路径)
    D:\Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Classes
    安装目录下把这个 classes. jar 放进Android工程的中添加依赖,重新打包成aar,并在Unity工程重新被引用
    4.Player Settings中的打包名与aar包名一致导致报错
    image.png

    解决:将Player Settings中的包名与aar包名设置不一致,且Player Settings中的包名要与Plugins\Android\AndroidManifest.xml的包名保持一致
    5.日志中报地图签名错误
    原因:百度地图开放平台的key未正确配置
    解决:百度地图开放平台的包名得与Player Settings中的包名一致,且百度key中的sha1值配置必须是使用签名文件生成,并正确配置清单文件AndroidManifest.xml中的key (Plugins\Android\AndroidManifest.xml与aar中的最好保持一致,否则可能会报清单文件无法merge的错误)
    image.png
image.png

6.
image.png

原因:未正确配置所致的杂奇报错,具体发生条件忘了

查看打包aar与本工程合并文件情况的本地目录:
安装盘符\Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Classes
示例:D:\Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Classes


image
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 151,829评论 1 331
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 64,603评论 1 273
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 101,846评论 0 226
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 42,600评论 0 191
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 50,780评论 3 272
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 39,695评论 1 192
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,136评论 2 293
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 29,862评论 0 182
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,453评论 0 229
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 29,942评论 2 233
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,347评论 1 242
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 27,790评论 2 236
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,293评论 3 221
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,839评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,448评论 0 181
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 34,564评论 2 249
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 34,623评论 2 249