Unity接入AdMob广告碰见的问题 unity方法数超过 65535 jar包冲突

在给项目接入广告的过程中,碰到了一些问题

在接入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) 

                                            这篇:Unity中65535解决方案

                                            这篇: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 打包方式即可  我试了一下,果然是这样,根本不用前边哪些花里胡哨的配置这个文件那个文件的。惊喜来的太突然了吧




给这位老哥点个赞

你可能感兴趣的:(Unity接入AdMob广告碰见的问题 unity方法数超过 65535 jar包冲突)