在给项目接入广告的过程中,碰到了一些问题
在接入AdMob时,单独的打包是没有问题的,但一将facebook的资源 和 AdMob的资源同时导入到工程内,那问题就来了
遇到的第一个问题:jar包冲突
因为导入进来的资源都是aar文件 你不知道他里面装了哪些东西又和其他的哪些文件冲突,只有再打包过程中查看报错信息,去看编辑器的log才能看到到底是那个jar包冲突 最简单的方法当然是del删除掉,但是你会发现当你删除了其中一个文件之后,facebook和admob 的所有资源都会被自动删除然后重新下载一份(不要去尝试把aar文件解压然后把里边文件删除 这样操作打包同样会报错)
解决方法:找到冲突的aar文件然后在编辑器中选择它 然后去掉Android的那个勾这样就可以了,就不会把这个打进去了
第二个问题:Unity超过64k
trouble writing output: Too many method references to fit in one dex file: 85969; max is 65536.You may try using multi-dex. If multi-dex is enabled then the list of classes for the main dex list is too large.
打包时候除了这样一个错误,超过65k的限制,Unity也提示让我开启Multi-dex
然后我就各种尝试,比如说这篇:Unity解决报错“Too many field references: xxx; max is 65536”(超过64K)
这篇:Too many method references; max is 65536
这篇:Too many field references: 70613; max is 65536
大概的思路都是:
复制unity安装目录下的 mainTemplate.gradle 文件 到 自己工程Assets/Plugins/Android目录下,然后修改文件中的一些设置
然而 这样尝试后并无什么反应,还是同样的错误
trouble writing output: Too many method references to fit in one dex file: 85969; max is 65536.You may try using multi-dex. If multi-dex is enabled then the list of classes for the main dex list is too large.
这是我离真相最近的帖子:Unity解决报错“Too many field references: xxx; max is 65536” --Unity的Android端接入Firebase云推送小结。
前边的设置基本相同 都是复制mainTemplate.gradle 文件 ,不同的是多修改了一个设置 就是选择 Gradle 打包方式
这样打包确实没有超出限制这样的错误了,但是更多的错误却跌然而来,解决一个又报一个。
当我快要绝望的时候,突然看到了这个 Unity 接入 Facebook登录SDK7.11.1 (Android、IOS)
他的情况和我差不多,这篇文章的最后说,只要选择 Gradle 打包方式即可 我试了一下,果然是这样,根本不用前边哪些花里胡哨的配置这个文件那个文件的。惊喜来的太突然了吧