Unity3D 运营商支付 安卓打包的陷阱 libunicomsdk.jar

本篇文章由:http://www.sollyu.com/unity3d-operators-paid-android-package-trap-libunicomsdk-jar/

说明

想想做Unity3D SDK集成已经快2年了,遇到过不少很棘手的SDK,其中以运营商的SDK为主。

在我的另外的一篇文章中提到移动MM在使用Unity打包之后找不到文件mmiap.xml的解决办法。

发生这种现象的最明显的现象是:

  1. 使用IDE运行官方所给的Demo,或者是自己做测试程序的时候,运行很正常
  2. 但是在使用Unity3D打包之后就会发现无法正常使用,在logcat中查看就会发现,大体都是找不到xxxx文件。

举个例子来说:

在集成联通SDK的时候,就会报错:java.io.FileNotFoundException:armeabi/libunicomsdk.jar

类似这种现象我也见过不少,后来我找到了原因所在:

运营商所给的jar包,不仅包括.class文件,而且更多的是将assets的资源文件打包进去

截图为证

移动MM

移动MM的mmsmsbilling1.2.3.jar包内容。

Unity3D 运营商支付 安卓打包的陷阱 libunicomsdk.jar

联通sdk

联通Multimode_UniPay_base.jar包内容。

Unity3D 运营商支付 安卓打包的陷阱 libunicomsdk.jar

Unity3D 运营商支付 安卓打包的陷阱 libunicomsdk.jar

解决方法

  1. 使用解压软件将jar包解压

  2. 将解压后在文件夹/assets/下的文件复制到项目工程的assets文件夹下

  3. 将余下的com cn等含有.class文件的文件夹使用jar -cvf com.jar com命令打包成新的jar包。(命令中的com为文件夹

    也可以使用jar -cvf ../com.jar .这个打包当前目录下所有的文件

  4. 将新的jar包放在项目的libs文件夹下。

  5. 使用unity打包就OK 了

文章来自:Unity3D 运营商支付 安卓打包的陷阱 libunicomsdk.jar

原文地址:https://www.cnblogs.com/sollyu/p/4184510.html