记一次BUG与DEBUG衍生的若干问题

前两天用Unity做一个AR软件测试,因为电脑上没有摄像头,所以就想打包成APK,然后到手机上测试的。

这个APP 的功能就是打开摄像头,

对着一张特定的图片,例如这张

然后图片上会出现一个立方体,效果差不多这样。

然后就开干了,前面都很顺利,很快就完成了,但是到了打包成APK 这步以后就出了问题。

首先是可以打包,但发布出来的APP打开以后就秒退,然后我就去群里问大神了……

可能是我问的问题比较傻逼,而且遇到的大神也不太愿搭理我,给了我这样一个答案

然后人家就没搭理我了,然后我就自己琢磨是不是SDK的原因,因为Android SDK要翻墙下载,速度又慢,所以从百度某个论坛上随便找了个下来,可能是非官方的问题。于是决定从官网下载,然后我点了后面的Download

弹出来个这个网页

这特么什么鬼,我要的是AndroidSDK 给我这个开发工具干嘛,然后我翻了看了一下,它说这个开发工具里面集成了SDK ,好嘛,那我就下载,1.2G ,下了好一会,下完了,然后安装,一直next-next的点。完成了,然后又把环境变量设置了一下。

兴冲冲的打开unty打包测试一下,结果又特喵的秒退。我擦!深吸了一口气,心想可能是SDK没装全,于是打开SDK Manager 把没装的一狠心全选上来个install(PS:这玩意要翻墙下载,所以特别慢),然后就是漫长的等待了。

N久以后…… 全部installed 了,我长吁了一口气,心想这下不会出问题了吧!

默默的查了下属性,我勒个去66.4G,特么的这么大!

然后又是一通build, 结果,Duang~ 的一下,弹出了个窗口,没错,报错了!

莫慌,让我先看下报错信息

卧槽,这么长的一堆是个什么鬼!赶紧跑群里去问大神,前后问了三四次,都没人鸟我。

宝宝心里苦啊!

于是乎,复制,百度

CommandInvokationFailure: Failed to re-package resources. See the Console for details.
D:\Android\Sdk\build-tools\24.0.0-preview\aapt.exe package --auto-add-overlay -v -f -m -J gen -M AndroidManifest.xml -S "res" -I "D:/Android/Sdk\platforms\android-23\android.jar" -F bin/resources.ap_ --extra-packages com.TomatoJoy.ToTen -S "C:\Users\TPMer\Desktop\ten_gaoheng\Temp\StagingArea\android-libraries\unity-android-resources\res"

答案到是不少,但是不知道能不能解决,一个一个看吧。

不看还好,越看越一头雾水,一个说的比一个玄乎,可能大家遇到的问题不一样吧,只是看起来比较像 而已。从博客、论坛辗转到贴吧,都看了下,贴吧里几个楼主遇到的问题跟我这个好像,错误信息也好像,我看下面回复的,也有解决方法,这里只列出其中一个方法

心想这不是android的知识吗,不太会啊,不过照葫芦画瓢谁还不会,照楼主说的修改AndroidManifest.xml 文件里面的内容就好了,关键是这个文件在哪呢,记得几年前看过一点安卓开发的视频,可毕竟都是几年前,谁还记得了,于是我就搜索,还好找到了,不过一看怎么在Temp 文件夹下,大家都知道Temp是临时文件的意思,我心里就犯嘀咕了,临时文件里的修改有用嘛……(PS:后来我也贴吧回复了楼主问了他这个问题解决了没,无奈贴吧沟通起来太慢,至今楼主还没回复我。

卧槽,又是一堆英文,心中一万只草泥马奔腾而过,不管了,改了再说!

仔细找了下发现

**android:theme="@android:style/Theme.NoTitleBar"**

这句都没有啊,

机智的我想,没有那我给你加上吧!

于是就在他们前面加上了那句

android:theme="@android:style/Theme.NoTitleBar"

android:icon="@drawable/app_icon"

android:label="@string/app_name"

然后保存,我真特码机智

迫不及待的再次build 一下,盯着进度眼都不敢眨一下,大概到了五分之四的地方哔~~~~

我草泥马!我草泥马!我草泥马!

还是那个错误!我草泥马!

呆坐了一会……(内心戏:艹,什么玩意,这么难,不搞了!怎么能遇到这点问题就放弃呢!好烦,先打把游戏在说吧,俗话说,一撸解千愁!嗯!好主意,这玩意先放着,先撸!)

于是乎关了软件,打开游戏,酣战到深夜…………

就这样过了几天,但那个错误就像心里长了个疙瘩,解不开很操蛋!

几日后,一个灵光闪过,上google看看吧,国外的大神多

又是一堆……脑瓜疼!

这是官方论坛,看来这个问题也有很多人遇到啊!

这是最佳答案,全E文,看着头疼,脑仁疼,但没办法。看呗!

经过我一番深入的研究发现,这个错误就是打包的时候某个资源重复了什么的XXXXXX问题,想要解决就得修改某个文件,最好是对安卓开发有些了解,对unity打包机制有些了解,它们之间怎么互相工作的要明白!说白了就是我现在还是个菜鸡,这些都还不懂,书到用时方恨少啊!想当初早知道就把安卓开发学好了!白瞎了当初的满腔热血下了那么多教程,现在都落了好几层灰了吧!

都是12年的教程了,现在16年了,卧槽!4年了!4年前如果我好好学的话,现在肯定是个大神了!宝宝心里悔啊!!

咳咳咳,扯远了,继续讨论那个报错。

以前用别的电脑也是这样的操作的也没有报错啊,为什么这次就报错了呢。于是决定从头梳理一遍,按照教程重新设置一遍。

先是JDK SDK的安装,然后环境变量的设置,一步一步走下去,然后Unity的设置,然后Build,然后……Duang~ 的一下编译成功了!卧槽!卧槽!卧槽!成功了!好激动!果然皇天不负有心人,迫不及待的装到手机上试一下!

传输,安装,安装成功,都很顺利!

当我打开那个APP 的一瞬间,啪的一下又返回主界面了,我又点了一次,还是返回主界面。艹!又是秒退!!艹!艹!艹!感觉不会再爱了!

然后又去各群问了一遍……

得到的答案都差不多,

外面正下着暴雨,算了,先放着吧。先撸一把再说,一撸解千愁嘛!又是一场酣战……

本来我以为,这个问题只有等我学好android开发以后才会有个清晰的认识,才能解决。但今天抱着侥幸的心理又在群里问了一遍,今天好像群里的小伙伴都好像没什么事,热心的给我解答,其中有个人让我把APK发给他看看

然后我就发给他了,很快的就有回复了

报错信息如下:

然后我突然意识到是版本问题。因为一开始安装unity时候回让用户选择相应平台编译支持的,一开始的时候我没选择 android build support(PS此时我用的是5.3.4f版本的)

但后来为了打包安卓,所以必须装上面的 support,但那个安装文件找不到了,于是我就从官网上下了个补丁,打算只安装 android build support

问题就出在了这!我下的是 5.3.5f 版本的,所以两个不兼容,所以打包会失败。心理豁然开朗!!找到问题所在了,就好解决了,从官网下了个相对应版本的补丁重新安装一下就好了!

然后打包!没问题。

传送-安装-安装成功-打开!欧克!都没问题

运行的效果就是这样的

这一刻,春哥附体!!

困扰我多时的问题终于解决了!!!

就像他们说的那样,是自己当时脑抽了!哈哈哈!

Done.

遇到问题得解决,解决了还不算完,还得总结。

下面就来聊聊这个总结的部分。

首先,这个问题出现是自己脑抽了,当初如果安装Unity的时候一起选上了Android Build Support 的话也不会出现这个问题;

再退一步说,就算当初没勾上这个,遇到了这个问题,前面我的那些弯路都走过了的话,下一步我就准备重新安装unity了,这样一样可以解决,但是全部重新安装的话虽然解决了但还是不知道问题到底具体出在了哪;

再者说,遇到了这个问题,自己也想办法解决,通过问人,网上找资料。其实大家一开始都给出了答案:查看log日志找出问题出在哪。

可由于自己能力不够,不会查,这才是硬伤,……

所以不能知其然,还要知其所以然!通过百度,谷歌,论坛,群等等一系列手段了解了一下怎么查log文件,调试和监控某个APP,其中又有一大堆的懵逼!具体过程也不细说了,看下浏览记录

总算有个大概的了解,也只是个大概的

最后一句话:

路漫漫其修远兮,吾将上下而求索!

与君共勉!

时间: 2024-08-03 09:43:24

记一次BUG与DEBUG衍生的若干问题的相关文章

记一次Bug定位的过程

问题1 工作需要出bug的芯片不详细说明,该芯片的CPU含有32个中断源,一般来说,以stm32为例,中断向量表定义在startup_stm32f40_41xxx.s中,写为: ; Vector Table Mapped to Address 0 at Reset AREA RESET, DATA, READONLY EXPORT __Vectors EXPORT __Vectors_End EXPORT __Vectors_Size __Vectors DCD __initial_sp ; T

MyEclipse笔记(2):debug的使用

对于程序代码而言,学会调debug是重中之重,依此,掌握该技巧 以算1到50的和的代码为例: 1 package com.front.action; 2 3 public class debug { 4 5 public static void main(String[] args) { 6 7 int s=0; 8 9 for(int i=0; i<=50; i++) { 10 11 s+=i; 12 System.out.println(s); 13 14 } 15 16 } 17 18 }

web 开发相关笔记 01

前端学习纲要 ※jQuery 参考 ※ 整理 Chrome 收藏夹的小技巧 ※ 解决 AJAX 跨域获取 cookie ※ 记一次 MyBatis 相关的 debug [1] 前端学习纲要: ♦ 第一阶段: web-project 的命名规范与文件的组织规范: HTML 的基本元素 -->  例如 h p ui ol li .. img 等 --> HTML 元素的属性: CSS 属性与值 --> 各种选择器 --> 盒子模型 --> inline 和 block 的区别(C

金庸和古龙,Netweaver和微服务,以及SAP Hybris Revenue Cloud

这周Jerry在长沙客户现场待了几天,感谢易总和彩亮的款待.终于有机会和关注这个公众号的一些CRM顾问们进行线下互动,感觉很不错.得知公众号里某些文章帮助顾问们解决了一些工作中的实际问题,我很高兴.感谢大家的支持,只要时间允许,这个公众号我会一直写下去. 和CRM顾问们中午吃饭时聊到了SAP一些新的云产品采用了微服务架构开发,因此我写了这篇文章. 如果要找金庸小说里帮助Jerry提高编程水平最有用的一句话,无疑是:重剑无锋,大巧不工. 杨过被郭芙斩断一臂后,以前掌握的编程语言,哦不,以前掌握的武

手机卫士08_应用程序的flags_PopupWidnow悬浮窗体

1,应用管理的ui界面 条目界面的参考ui ①然后显示在ListView上即可(记得优化,程序大小的格式化等) ②获取ListView需要花费一定时间,所以放在子线程,再通过runOnUiThread()更新ui即可 ③创建一个FrameLayout,包含ListView,然后设置一个等待框,在获取的时候显示在页面上. 2,应用程序的flags (可以区分应用程序的安装位置,系统和用户安装的程序等) 2.1 ①在遍历每一个包信息的时候packInfo.application.flags(可能是多

setTimeout(fn, 0)引发的JavaScipt线程的思考

起因 周五改一个checkbox的display属性被错误地设置为none的bug. 经debug发现, 有两个地方修改了display属性: 1) checkbox的controller; 2) checkbox的parent(container). 前者先将display属性更新为block(正确), 后者再次更新为none(错误). 普通的思路是, 修改checkbox的container的代码, 使其能正确更新display值. 但另有一种更巧妙的方法, 就是修改checkbox的con

2015 UESTC Training for Data Structures

B - 秋实大哥与花 线段树入门题,需要理解lazy思想.线段树这玩意,要理解还是不难,就是代码实现细节..本渣写了几次了还是记不住. DEBUG LIST(Reversed): a) 读入数据的时候是0-based 即从a[0]~a[n-1] 但是在buildTree中赋值却使用1-based tree[i].val = a[l] = a[r] b) 很容易搞错的地方,代入的数据是参数l,r还是这个结点的l,r(tree[idx].l, tree[idx].r) c) lazy tag分解具体

记录几个坑

隐私协议 这个只要默认最高就给他整上 为了这个被拒一次不划算 遇到一个崩溃问题 本地debug测试没发现 所以以后提醒自己全部release本地测试通过再提交 免得出现未知的 崩溃bug 有一些诡异的bug 在debug下面不会崩溃 例如我们当时遇到的cocos2dx 2.2.6里面的httpclient int32_t没有改成long导致的 支付听老同事的建议 全部改为不查询产品信息直接执行支付操作

图像去雾 利用最小值滤波(待改进)

图像去雾 我的个神啊~ 调了这么久终于阶段性"胜利了" -- 利用最小值滤波正确实现图像去雾. 因为是C语言实现,很多细节都要注意,很砸时间--本来看起来很简单的程序,就是有bug,debug的时间很长了,这也是一种锻炼吧,难得的实战机会.磨C 这把刀这么久了,是该做做具体应用了!刀子是否锋利,要接受考验! 程序很大程度上没有利用OpenCV的一些数据操作的接口,除了图像显示和读取之外,其他的数据处理部分都是自己实现的.这几天的时间全砸进去了~ 暑假哇~时间过的慢点可好~ 由于项目正在