Unity接入Googleplay支付以及登录的坑续集

在接google play登录的时候遇到的问题首先是由于google play的登录按照官网上的教程需要导入很多aar的包,如果不导入相关依赖的话会导致自己在android studio导出的关于登录的aar的运行报错。随后我们在全部导入完相关aar之后打包还是会报错,会导致Unity在赢interal模式打包的时候报错,原因是导入的aar包中的函数过多超过了65536的限制Unity接入Googleplay支付以及登录的坑续集_第1张图片
这时我们有两种解决方法,1,是使用gradle打包,2,是导出工程用android studio再打包,使用第一种方式需要去修改Unity安装目录下的mainTemplateGradle种的配置,改成Multiex dex的方式。我选择的是第二种方式,但是当导出到android studio的时候build apk时也出现了问题,老是提示数组越界但是我代码都没什么问题,

java.lang.ArrayIndexOutOfBoundsException: 751
	at org.codehaus.groovy.classgen.asm.CallSiteWriter.getCreateArraySignature(CallSiteWriter.java:58)
	at org.codehaus.groovy.classgen.asm.CallSiteWriter.makeCallSite(CallSiteWriter.java:317)
	at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCachedCall(InvocationWriter.java:307)
	at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCall(InvocationWriter.java:397)
	at org.codehaus.groovy.classgen.asm.InvocationWriter.makeCall(InvocationWriter.java:104)
	at org.codehaus.groovy.classgen.asm.InvocationWriter.makeInvokeMethodCall(InvocationWriter.java:88)
	at org.codehaus.groovy.classgen.asm.InvocationWriter.writeInvokeMethod(InvocationWriter.java:464)
	at org.codehaus.groovy.classgen.AsmClassGenerator.visitMethodCallExpression(AsmClassGenerator.java:771)

最后找到了这个问题的答案,是由于assetopt里面包含了太多的资源文件超过了250个资源文件就会导致报错,解决办法也有两个,1是直接把assetopt里面包含的资源文件的引用都删除了,2是在Unity导出gradle时不包含资源文件,等android studio 打好apk时再往apk里面塞资源文件,我选择的是第一种,能正常打出APK,也能运行。
以上就是google play 登录遇到的问题,

支付时遇到的问题是google play官方文档上给出了两种支付的demo我们要选择IADL的demo也就是需要内购的demo,但是当你导入IADL后在build时就会出现,包含重复依赖项的提示导致无法正常打包,这时候你需要把IADL删除,因为在build的时候已经生成了相关代码了,所以删除后就能正常打包了。然后在提交到google后台的时候需要注意测试版本是无法测试支付的,必须是alpha版本或者beta版本才能够测试支付。

以上就是我遇到的问题,希望对你们有帮助

你可能感兴趣的:(Android,Unity)