团队项目-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工程就全部更新完成