U3d编译提示安卓更新卡很久
1. 新手,初学Unity3d,想用Unity3d发布android的apk,但是老是报如下错误 :见问题补充
这种情况可能是因为sdk升级造成的,新版本的android sdk和旧版的更改不少,结构都变了了,特别是你如果用老版本的unity(3.x),就会和出现这种情况,你可以找找老版本的sdk试试,或者用最新的unity
2. unity发布安卓遇到的问题
如果你的sdk都配置好了,unity也指定好路径了,那就是缺少java运行环境jdk,或者你安装jdk了,没有配置好环境变量,网络一下“java环境变量配置”有好多的,就不再复制了
3. 诡异,Unity在安卓运行崩溃问题,求助
在整个开发阶段和测试阶段,出现了很多预料之外的事情,比如size是1M多的json文件解析、高清图片导致OOM、莫名其妙的崩溃等。这些意外无一不影响开发计划,增大压力,最直接的表现是晚上加班和周末加班。 写代码和修改代码远比想象中的难控制。用户体验增加了代码的细节处理难度、逻辑处理难度,android莫名的崩溃增加解决bug的难度。就这次开发,总结了一些经验。 测试人员经常会报告小米1手机运行壁纸软件时会崩溃的问题,崩溃日志是: java.lang.RuntimeException: Failed to register input channel. Check logs for details. at android.view.InputQueue.nativeRegisterInputChannel(Native Method) at android.view.InputQueue.registerInputChannel(InputQueue.java:92) at android.view.ViewRoot.setView(ViewRoot.java:570) at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177) at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91) at android.widget.Toast$TN.handleShow(Toast.java:411) at android.widget.Toast$TN$1.run(Toast.java:337) at android.os.Handler.handleCallback(Handler.java:587) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:130) 根据日志推测该崩溃是和Toast有关。可是问题就奇怪了,我在代码中只调用Toast.makeTest(...).show(),为什么会引起这个崩溃。然后根据测试人员的反馈,当设置壁纸成功后,会引起这个崩溃,而且测试人员是在频繁的操作下报出来这个问题的。根据这个现象,推断有可能以下两个原因引起的,一是,设置壁纸引起桌面发生变化,桌面发生变化时弹出toast会导致崩溃;二是,频繁不间断的弹出toast会引起这个问题。而之后测试人员反馈了一个新的现象,当进行新浪微博分享失败后(前提是该新浪微博帐号是有问题的),再去浏览壁纸图片也导致了该崩溃,而且此现象仅出现了一次再也不复现。该bug最终是遗留解决。 针对这种问题,在以后的版本开发中肯定也会出现,怎么避免它再次出现。我总结了从几个方面做努力。先借来小米1手机来玩,学习手机发烧友的习惯和测试人员的思维,然后体验小米1手机,对小米1要有更深入的认识;和小米进行沟通,还没有认识牛逼的朋友在小米做开发,所以可以先在小米论坛上做活跃用户,主动和对方和网友沟通;了解input channel是什么功能,什么机制,研究 anroid2.3的关于这块的native代码。 刚开始进入测试阶段时,测试人员每天都会报告壁纸软件频繁崩溃的问题。对于一些简单的崩溃问题,一般是空指针而且还复现,就不在这里说了。测试报告说,浏览壁纸图片保存壁纸,预览壁纸和设置壁纸时经常的崩溃,这种崩溃没有规律可复现但是很频繁出现。这种问题的原因是OOM,比如,在MX2手机上,桌面预览要使用的位图大小是1280 X 800 X 2 X 4字节 约等于8M,软件中的位图各种处理(缩放、剪切、渲染、多个activity同时存在等)会导致内存使用量飙升到50多M,当超过64M左右时,软件会报OOM错误。没有彻底解决OOM的方法,网上有很多避免OOM的方法,比如延迟加载图片、及时回收内存、弱引用等。另外在生成bitmap的地方要使用try 解决了这些崩溃问题后,还会有新的导致崩溃的原因。测试人员说中午吃完饭回来,打开壁纸软件突然崩溃。分析这个现象后,找到原因是,长期待机情况下android杀掉了壁纸软件的进程。但是疑问出现了,此时进程被杀掉了之后点击app的icon,不是又重新打开了进程,重新运行了吗,怎么会崩溃呢。经过分析,发现有个诡异的地方是,android待机后把壁纸进程给杀掉了,但是该软件的activity并没有从task中删除掉,所以当再点击app的icon时,会执行task顶层的activity的onCreate,而onCreate里边的一些东西还未初始化,会因为空指针而崩溃。 后来,测试人员报告了一个诡异的bug,安装软件后第一次打开软件,欢迎界面的图片显示不出来,以后每次打开软件欢迎界面的图片都能打开出来。图片是一个jpg文件,在raw中。最后找到原因是,在decode bitmap,scale bitmap时,其中要操作的一个变量imagewidth在第一次时是0,没有赋值,之后再操作就不是0,赋值了。但是为什么会这样,最后找到原因了,imagewidth是一个全局静态变量,该全局静态变量在另外一个线程中会被赋值(赋上屏幕的宽度)。由于线程的异步问题而导致第一次imagewidth是0。后来每次打开软件,并不是进程重启,而是activity重启,imagewidth赋的值还在。
4. unity发安卓游戏包为什么会卡
工具Eclipse编程软件;步骤编写相关的android接口,在Eclipse中新建工程,并设置为library,编写相关的接口。新建unity3d的工程,在Assets目录下,新建目录,结构如下 ;android:name 请使用android工程中全部限定名和对应的权限。unity3d中调用接口。其他AndroidManifest.xml中其他内容不需要修改。
5. unity3d android build and running时出现如下所示的提示,不知怎么回事
可能是没有安卓SDK(比较大的那个),或者导入安卓ADK文件夹不正确(要用SDK的根目录)
6. Unity发布在安卓平台帧率过低怎么办
检查是否开启了vsync;
用自带的profiler检视低帧率原因;
7. Unity为什么发布安卓游戏进度到最后总卡住,无论游戏有多小
检查报错信息;
检查是否卡在shader编译,如是则检查是否将standard加到了always include列表;
8. Unity使用WebCamera在Android发布后体验不流畅,还会出现卡的现象,怎么解决啊
这个可能是资源太多导致的。
9. Unity发布的安卓游戏,如何实现自动更新
一般的情况你只需要打包时间就可以了,但是如果你要更新代码也是,把你的lua脚本设置好时间,让他自己打包进去进行更新,当然前提你需要把这些都写好
10. 如何提高Unity3d编译安卓apk的速度
分成二步untiy导出android工程,用android工具编译出apk .到底是你生成工程慢?还是编译apk慢?
unity一般是处理resource下资源慢,编译一般是streamassets下文件多zip慢