团队项目-BUG排查-ADT工程 To Android Studio 一整天的排查日记
4-22 10:44至4-23 0:45
①打开Eclipse从Github上Clone MathsApp到本机,报错'Unable to resolve target'android-19'
②尝试导入Android Studio1.5.1,直接改动 targetSdkVersion 和 compileSdkVersion 到 23(安卓6.0),首次运行成功
当时格外高兴,以为一大难关已经过去。然而…
4-23 8:30 至 4-23 11:56
①收到Android Studio 2.0.0的升级消息,加之看到新闻称2.0.0支持即时运行,果断关掉当前Android Studio 1.5.1,卸载干净,重装Android Studio 2.0.0。
②当我打开Android Studio 2.0.0的时候,感觉到来自谷歌深深的恶意……之前完好运行的程序工程突然多了一个红叉叉。
③于是理所当然地想应该是2.0.0需要新的plugin支持,果断打开SDK更新了2个钟。
4-23 12:30至4-23 16:41
①打开工程依然发现无法Build,卡在一个error上:
AAPT err(Facade for 2069296074): libpng error: Not a PNG file
②于是开始怀疑是不是新的AVD问题,遇到error,于是向助教咨询关于真机测试的问题,打开ADB开关,直接进行真机运行,但还是失败的。
4-23 16:41至4-23 23:03
①每点击一个class文件就报异常,于是点进class查看代码,发现注释和特殊字段的中文全部乱码,遂把UTF-8换成GBK,逐个点击更换,中文乱码问题解决,Build,依旧是那个错误。
②以为是加载的问题导致汇编依然是UTF-8的汇编,所以退出工程,重新设置默认打开方式为GBK。
③打开过程卡住,不得不强制结束进程,以为源码损坏,重新Clone MathsApp重新导入Android Studio。
④Rebuild工程,无法排错。
⑤和助教一起从错误提示中仔细推敲,发现可能是PNG文件(sRGB和aRGB读取)出问题,遂搜索PNG文件,无法排查到有问题的PNG。
⑥尝试新建工程,AVD和真机测试 试运行,发现没有问题;
⑦尝试在新建的工程写入MathsApp的Java类,导入MathsApp的res资源,Build 依然失败,错误依旧。
⑧尝试卸载Android Studio 2.0.0,安装Android Studio 1.5.1,导入原版MathsApp,修改API,错误和2.0.0一样。由此可以排除是编译器的问题。
4-23 23:03至4-23 23:41
①注意到第二次编译时错误发生了变化,指出了f1.png、p1.png和start.png有错。
②直接利用原文件夹中不报错的png替换报错png,PS打开过程中顺便把其他png也试着打开,发现bgr.png怎么也打不开,顺便把它换了。
③回到工程Build,错误和2.0.0 Build时一样,把排查方放到图片以外的内容,看AndroidManifest.xml发现encoding="utf-8",搜索相关知识发现UTF-8为安卓默认编码方式。
④回想起乱码的地方,决定把class先换到GBK,复制不乱码的整个class,退回到UTF-8乱码状态,替换乱码。
⑤重新Build,成功,无Warning无Error,Run,成功加载到AVD
至此,一天排错工作结束。
总结
①乱码会造成其他错误提示,影响编译Build,点击UTF-8换成GBK只是编译器读取为GBK中文,但在编译过程依然沿用乱码Build
②图片色差(sRGB/aRGB/CMYK)等等都会造成编译错误
③非常感谢助教的耐心指导,不仅学到知识也学会了开源合作态度,一整天下来助教都是全程一起探讨、解决问题,不嫌学生的烦人小问题,助教的热情和耐心让我十分感动。能遇到这么Nice的助教真算十分幸运的。
后续
4-24 2:01至4-24 2:07
①尝试在新编码的情况下,重新复制原版png图片覆盖前工程,Build,发现工程继续出错。两种Bug同时存在的结论得证。
②重新利用Ps打开出错文件覆盖保存,Build无错,运行正常
③更新到2.0.0,打开工程很慢,更改工程文件下的
/.gradle/
/2.10/
/gradle/warpper/gradle-wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip
/build.gradle
classpath 'com.android.tools.build:gradle:2.0.0'
自动更新完Index工程就全部更新完成
团队项目-BUG排查-ADT工程 To Android Studio 一整天的排查日记的更多相关文章
- 导入Eclipse工程 到 Android Studio
一.从Eclipse导入工程到Android Studio 根据官方的介绍,Android Studio可以兼容Eclipse的现有工程,但需要做一些操作: 首先升级ADT到最新版本,目前为版本号为2 ...
- Eclipse工程 导入 Android Studio
最近Eclipse好多项目转Android Studio 百度翻看好多文章 这篇不错 特纪录下 地址:http://www.cnblogs.com/bluestorm/p/3757402.html 一 ...
- 导入eclipse工程到Android Studio中
ref:从 Eclipse 迁移至 Android Studio | Android Studiohttps://developer.android.com/studio/intro/migrate. ...
- Eclipse 项目以非gradle方式导入Android Studio
对于以前习惯了Eclipse ide的开发这来说,要把项目导入到studio是一件很不愿接受的事情,但是...毕竟人家官方都给出建议了,并且年后会逐渐被淘汰 如下图所示是一个典型的eclipse项目. ...
- Unity导出Gradle工程给Android Studio使用
1 Unity导出Gradle项目 Unity打包时Build System选择Gradle,勾选Export Project 2 Android Studio导入Unity导出的Gradle项目 打 ...
- 使用新版本5+SDK创建最简Android原生工程(Android studio)http://ask.dcloud.net.cn/article/13232
1 使用Android Studio创建一个工程 2 删除原生工程中Java目录下系统默认创建的源代码 3 复制SDK->libs->lib.5plus.base-release.aar文 ...
- 团队项目-BUG挖掘
测试硬件: 华为畅享5 测试平台: 安卓5.1 测试项目Git地址: https://github.com/RABITBABY/We-have-bing 测试Apk来源地址: http://www.a ...
- unity5.6 导出gradle工程,Android Studio 导入问题以及解决
导入后gradle building 一直到跑,卡住了,一般是gradle没有下载,又下不下来的原因. 去 http://services.gradle.org/distributions/ 下载 ...
- Android项目第一天,下载安装Android Studio和“我的第一个安卓项目”
一.AS的下载我是在AS官方网站进行下载的最新版本,如图所示 二.AS的安装过程 点击你下载的安装包安装即可,傻瓜式一站到底. 到这一步时选择第二个按钮, 随后出现如下界面 这个窗口是提示我们设置代理 ...
随机推荐
- Python enumerate()方法
for循环中如果要获取当前元素的索引值,一个方法是定义一个计数器,每次取值的时候将这个值加一,如果是列表的话可以用index()函数,而python中有一个比较简洁的方法而已直接获得索引值,并可以方便 ...
- IP组播 MulticastChannel接口 DatagramChannel实现
监听者 import java.io.IOException; import java.net.InetAddress; import java.net.InetSocketAddress; impo ...
- golang 后台服务设计精要
原文地址 守护进程 传统的后台服务一般作为守护进程(daemon)运行.linux 上创建 daemon 的步骤一般如下: 创建子进程,父进程退出: 调用系统调用 setsid() 脱离控制终端: 调 ...
- 08-可滚动Widget
可滚动Widget ViewPort视口 在Flutter中,术语ViewPort(视口),如无特别说明,则是指一个Widget的实际显示区域.例如,一个ListView的显示区域高度是800像素,虽 ...
- Docker搭建NSQ实时分布式消息集群
NSQ是一个基于Go语言的分布式实时消息平台,它基于MIT开源协议发布,代码托管在GitHub.NSQ可用于大规模系统中的实时消息服务,并且每天能够处理数亿级别的消息,其设计目标是为在分布式环境下运行 ...
- express-session deprecated undefined resave option; provide resave option app.js
nodejs使用express-session报错 代码如下 app.use(session({ secret: 'hubwiz app', //secret的值建议使用随机字符串 cookie: { ...
- Hadoop守护进程的作用(转)
概述: <ignore_js_op> Hadoop是一个能够对大量数据进行分布式处理的软件框架,实现了Google的MapReduce编程模型和框架,能够把应用程序分割成许多的 小的工作单 ...
- day1 Ubuntu 使用
ctrl + shift + + 放大终端 ctrl + - 缩小终端 软连接,硬链接 ln python@ubuntu:~/Desktop$ vim .txt python@ubuntu ...
- SaltStack入门篇(七)之架构部署实战
模块:https://docs.saltstack.com/en/2016.11/ref/states/all/index.html 实战架构图: 实验环境设置: 主机名 IP地址 角色 linux- ...
- 海思NB-IOT HI2115芯片电压域的问题
1. 先看模块引脚,利尔达NB86-G模块 2. VDD_IO_R1, VDD_IO_R2, VDD_IO_L1 and VDD_IO_L2 control the IO voltages on PI ...