怎么使用Unity5.cocos2d x打包ios与发布Unity3D游戏

今年我们开始使用Unity3D开发MMORPG,脚本语言使用C#,这样我们就可以使用以往积累的许多类库。但是,在U3D中使用.NET dll的过程并不是那么顺利,比如我们今天遇到的这种问题。
一.问题出现
我们在当前的一个U3D项目中使用了作为通信组件与服务端进行通信,在U3D环境中,编译运行一切正常,但在打包发布(Build)为PC版本可执行文件时,却出现错误:&ArgumentException: The Assembly System.Management is referenced by StriveEngine. But the dll is not allowed to be included or could not be found.&
最初,我以为是签名或者是加密混淆的问题,于是我使用原始编译生成的StriveEngine.dll,问题一样存在。
接着,我再猜测可能是StriveEngine.dll编译时选择平台的问题,于是把目标平台由anycpu更改为x86,重新生成StriveEngine.dll,并且在u3d打包发布也选择x86,如下图所示:
但是,问题依然存在。
二.解决方案
经过一番折腾,终于发现需要设置一下U3D所使用的.NET版本 -- 点击Player Settings按钮,找到Api Compatibility Level选项,选择".Net 2.0",而非".Net 2.0 Subset",如下图所示:
这个选项的意思是说,要使用.NET 2.0的完整版本,而非其子集。经过此设置,终于可以打包发布成功。
究其原因,看来是因为StriveEngine所使用的是完整版本.NET 2.0。
三.又现困境
由于我们的游戏会打算发布一个轻量级的Web版本,于是,我们尝试将其打包发布为Web版,god,同样的问题又出现了,而且,在发布Web版本的情况下,Api Compatibility Level是不可选择的。
猜测发布Web版本只能使用.Net 2.0 Subset。
四.如何走出困境?
如果发布Web版本就只能使用.Net 2.0 Subset这个猜想是正确的,那么,我想基于.Net 2.0 Subset开发一个StriveEngine.U3D.dll,使其可以被打包发布到各种不通类型的平台。可是,.Net 2.0 Subset 具体指的是哪个子集了?是.NET Compact Framework?还是SilverLight提供的.NET&Framework?抑或是其它?望知道的童鞋能留言告诉一下。
阅读(...) 评论()这里应该注意几点:
1.Player Settings..里面的Bundle Identifier* 必须填写为跟Android工程一致的包名,注意是包名,(若有多个包时)
2.在eclipse中把Anroid工程,先project-&clean一下,再build project(需要去掉build automatically的勾),然后到Android工程目录的bin目录的classes目录,进行把Anroid工程打包成jar包,注意Unity5.x需要把带R的.class全删掉走,不然会出现下面第4点的发布错误,然后可以在cmd下面输入如下指令
jar -cvf 包名 *如图:
导出的包结构
3.导出的jar包要放在Unity项目的Assets/Plugins/Android下面就即可,具体的存放文件结构取决于实际需要
4.如果出现类似下面的错误java.lang.IllegalArgumentException: already added: Lxxx/xxx/R$x;这就意味着你打包android工程包含重复的跟R相关的class,解决方法为第2点
CommandInvokationFailure: Unable to convert classes into dex format. See the Console for details.
D:/jdk-8u60\bin\java.exe -Xmx2048M -Dcom.android.sdkmanager.toolsdir=&E:/Android-tools/sdk\tools& -Dfile.encoding=UTF8 -jar &F:\Unity3D\Editor\Data\PlaybackEngines\AndroidPlayer/Tools\sdktools.jar& -
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/example/unitytest/R$
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/example/unitytest/R$
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/example/unitytest/R$
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/example/unitytest/R$
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/example/unitytest/R$
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/example/unitytest/R$
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/example/unitytest/R$
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/example/unitytest/R$
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/example/unitytest/R;
9 aborting
这里原Android工程的R相关的class文件不需要放进jar的原因估计是,Unity5会根据res文件下面的各个xml文件与他自身的各种xml一同写入到一个R.java,然后编译成一些与R相关的class文件。(可以查看发布时Unity工程目录下的Temp/StagingArea/gen/包名/R.java)
5.若打包成功,启动却有问题,可能是Android代码部分或者AndroidManifest配置的问题
本文已收录于以下专栏:
相关文章推荐
CommandInvokationFailure: Unable to list target platforms. Please make sure the android sdk pat...
导入《google android开发入门与实战》书中自带的豆瓣网客户端源程序时eclipse出现以下错误:java.lang.IllegalArgumentException: already ad...
写文章注册登录
Unity编译时找不到AndroidSDK的问题 | Unable to list targ...
小米1s(4.1.2)和红米(4.4.4)run项目时报这个错:
三星a8(android5.1.1)run项目时没有报这个错, 不给项目打包时也会报错:
Error:Uncaught trans...
Android与Unity交互研究转载请注明出处:http://blog.csdn.net/crazy1235Android与Unity交互研究
unity与android交互的由来
unity简单介...
更新 今天用Unity5.3.6发现一个简单的方法,在打APK的时候勾选如图两项,打出来的包装在手机用数据线或WIFI连接unity的Profile,只要在手机上运行游戏Unity...
Unity与Android之间的通信
【转载请注明出处】
作者:DrkCore (http://blog.csdn.net/DrkCore)
原文链接:(http://blog.csdn.net/drkcore/article/d...
前言:做安卓也有好几年了,现在主攻unity3d,
一般的安卓工程往往都不是独立的一个工程,尤其接入sdk这块,往往会有很多的第三方的sdk,这时候打包就很乱了,如何保证打包后不会出问题,往往新...
错误提示:
Information:Gradle tasks [:app:clean, :app:generateDebugSources, :app:generateDebugAndroidTes...
他的最新文章
讲师:李江龙
讲师:司徒正美
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
有谁用过Unity5现在虽然是测试版,但是可以打包html5了,由于项目需要我于是打包了一个试试,我的项目插件有NGUI一开始转换成html5的环境中会报个错,这个不是问题,Unity有个提示说是脚本过时了,双击升级一下脚本就行了!果然双击后原来带红字的报错就没有了,然后我检查了一下其他的脚本看看还会不会有什么问题,确定没问题的时候开始打包。打包到如图的程度的时好像是脚本转换的时候就不动了,Unity也无响应了,是NGUI脚本问题呢还是别的什么问题!有谁可能知道原因的麻烦告诉下,哪怕是猜测的原因也好就算是谁想到的可能有什么可能性也好!给点意见,大家一块探讨下
啊…………打包用了半个小时!原来它是一直是在工作的!不知不觉问了个2B问题………………
这下银子白花了吧!!!
打包到Html5是怎样的效果啊,展示一下呗?我现在的版本是4.5,可以打包到Web Player和网页挂钩,后缀.unity3d,突然对你的打包饶有兴趣啊,可以探讨一下不?
{:106:},打包出来的好用不?
,打包出来的好用不?一点也不好用!100多兆!玩是可以玩的,但是一个JS脚本100多M太坑爹了!一开始我想是不是我游戏多问题,然后我打了个空包出来,只比我原来打游戏小几十兆。空包也是100来兆!唉,谁会在手机上玩一个js是100来兆的网页游戏啊!而且我在手机上实验了一下。也玩不了3D的游戏啊!
打包到Html5是怎样的效果啊,展示一下呗?我现在的版本是4.5,可以打包到Web Player和网页挂钩,后缀.unity ...游戏效果在我自己电脑上运行还行,就是太大太大!坑爹的大啊。空包打出来一个js脚本就是100兆!
打包到Html5是怎样的效果啊,展示一下呗?我现在的版本是4.5,可以打包到Web Player和网页挂钩,后缀.unity ...unity在html5这块还是有待提升啊!而且现在在手机上登录网页玩打话还是没法玩3D打游戏,cocos2d-x打出来的html5的包也是2d的可以玩。我做的是3D游戏,反正在手机上是不能玩这样的网页游戏的,但是unity打包的2d游戏倒是没试过。js脚本这么大打包也有意义!建议还是期待Unity5大正式版出来吧,Unity5能值得期待点的就是html5了!
我这个打包是这样的过程!打包掉时候它会停掉两次,如图的是第一次!第二次就是把脚本转换成JS的脚本的过程!这个过程是相当的慢啊!把我的代码全部转换成了JS脚本。慢就慢在转换脚本的这一步。而且这是个3D游戏,感觉好像是要用纯JS脚本完成x,y,z三个轴的所有操作和计算的样子。当我打开这个100来兆打开这个纯js脚本打时候………………半小时!我想这个应该是我电脑本身就比较慢打原因!一开始还以为哪里出错里,Unity还没有响应!想要打包html5做试验的朋友,还要请耐心等待!
一点也不好用!100多兆!玩是可以玩的,但是一个JS脚本100多M太坑爹了!一开始我想是不是我游戏多问题, ...那我过段是假再关注。
一点也不好用!100多兆!玩是可以玩的,但是一个JS脚本100多M太坑爹了!一开始我想是不是我游戏多问题, ...那我过段是假再关注。。。。
明白啦,楼主编程该是C#吧!如果换用Javascript的话不知咋样,JS的朋友们继续跟帖呗,{:106:}
和楼主一样。发布windows phone好长时间。。
请耐心等候。。。。。。。。。。
明白啦,楼主编程该是C#吧!如果换用Javascript的话不知咋样,JS的朋友们继续跟帖呗, ...大叔说的真有见解,赞一个{:104:}
本帖最后由 楹涛 于
14:07 编辑
明白啦,楼主编程该是C#吧!如果换用Javascript的话不知咋样,JS的朋友们继续跟帖呗, ...对啊!可是我空包打出来是没有脚本的哦!而且也是等了半小时!!!!打出来的JS脚本我看了一下,也是100来兆
明白啦,楼主编程该是C#吧!如果换用Javascript的话不知咋样,JS的朋友们继续跟帖呗, ...对啊!我用的是C#。我空包打了一次,没有任何脚本结果也是等了半个来小时。看一下空包等JS脚本,也是100多兆……空包都这么大了!还是等正式版本出来再看看什么样吧!
对啊!我用的是C#。我空包打了一次,没有任何脚本结果也是等了半个来小时。看一下空包等JS脚本,也是100 ...{:89:}{:89:}{:89:}{:89:},是个蛋疼事!且看发展吧,继续跟进
最近也在研究这个,终于找到志同道合得了。
楼主最近还在折腾吗?有没有什么新成果。
我折腾了一下,把Optimization级别设置为fast,打完以后html5.js只有20M左右。不知道楼主有咩有注意到旁边有一个html5.jsgz的文件,只有js文件的五分之一,也就是5M左右。理论上是可以直接调用这个文件的,没找到地方设置。
所以感觉正式版如果在优化一下,压缩包能到1M以下,还是很有戏的。希望楼主不要放弃,咱们在正式版还没出来之前一块多找方法看能不能自己找到一些解决问题的办法。
有看到 .htaccess 這個檔案嗎
其實用支持 .htaccess 的web server
檔案就會用 Compressed 裏的壓縮版
应该是因为还没有正式版的缘故
之前UNITY出FLASH导出的时候,也是测试版出来的包大的不行,后来正式版之后就小了
要回复问题请先或
浏览: 1751
关注: 0 人怎么使用Unity5.x打包与发布Unity3D游戏_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
怎么使用Unity5.x打包与发布Unity3D游戏
我有更好的答案
///question/0453419" target="_blank">https://zhidao<a href="/question/0453419这是我以前的回答,希望对你有用
为您推荐:
其他类似问题
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;}

我要回帖

更多关于 vux 打包太大 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信