美文网首页Android 踩坑记Android开发经验谈程序员
Android AndroidManifest 文件中少一个&q

Android AndroidManifest 文件中少一个&q

作者: dongjunkun | 来源:发表于2016-07-08 23:37 被阅读967次

    问题是这样的,通过USB连接电脑安装会出现如下错误提示,好像只是提示会卸载应用重装(一般出现签名文件冲突的时候会有这个提示),但问题没有那么简单,这个提示会反复出现,当真机上的应用已经完全卸载(杀掉进程,重启手机)这个错误提示依然每次出现。


    Paste_Image.png

    错误分析

    • 缓存的问题(通过clean project 及rebuild project重启Android studio,问题依旧出现)
    • 手机自身的问题(其他的程序可以正常安装,就我当前开发的应用不行,换了几个同事的测试机依旧不行)(基本排除手机的问题)
    • 数据线的问题(通过更换数据线,使用wifi连接手机,问题依旧出现)(排除数据线的问题)
    • Android Studio内部出了问题(当通过直接安装的方式不行,我通过拷贝到手机SD卡进行安装,出现了安装包解析的提示,通过QQ传到手机也提示安装文件不存在或者失效,如下图
    Paste_Image.png

    于是分析是否是Studio 打包的问题,我喜欢更新到最新的studio 版本,出现一些bug也属于正常状况,于是通过更换Studio的版本,问题还是依旧存在)(基本排除Studio的问题)

    • 工程的问题(通过新建工程,可以运行,再将代码复制到新的工程,错误提示依旧如期而至)
    • 电脑系统有问题(代码拷贝到其他同事电脑运行,等了好久……,喔喔,还是出现了那该死的问题)

    这个问题难道无解了吗?所有能排除的都排除了,真的无解了吗?难道是代码的问题,这不可能啊,都能通过编译,打包,就是安装包不能安装,像这种疑难杂症按照我之前的经验大都是属于低级错误,静下心做下其他的事情,再排查一下,或许能柳暗花明吧。

    两个小时过去……(中间做其他的事情,偶尔回头想想这个问题)

    柳暗花明

    在做百度鹰眼功能的时候,默认是一个进程,当程序退出时候会杀死主进程

    Paste_Image.png

    但这样不行啊,提供的Demo只有一个页面,杀死了程序也就退出了,当我集成到我的应用,总不能退出那个界面就退出程序吧,于是乎我在AndroidManifest 添加了一行代码,为这个Activity新开一个进程,如下

    Paste_Image.png

    错误就在这了,track前面少了一个":"导致安装包解析错误(SD卡安装),不断的提示卸载当前应用(USB或者无线Wifi安装)

    Paste_Image.png

    问题完美解决。

    总结

    • 这个问题严格来说也是编译器不提示这个错误导致的,通过人工很难检查到这样细微的错误(从几万行代码,上千个文件中找一个分号的错误,解决实属偶然),希望studio完善这个问题。
    • 另一方面,也是个人的疏忽吧,写代码的时候仔细点,应该就能尽量避免这样的错误的发生几率。
    • 个人的一点建议吧,许多程序员都容易钻进这样的坑,过于自信自己的代码,过于相信编译器,过于相信后台不会出空指针,过于相信UI设计这样做一定有他的合理性,一个低级的错误可能会造成大量时间的浪费,很多时候,我觉得可以采取我的做法,做做别的,换个方向思考问题,解决问题的同时也不会耽误太多其他的工作时间。

    不知道大家相不相信灵感这东西,反正我是信的

    写在最后

    欢迎大家转载,转载请注明原文出去

    相关文章

      网友评论

      本文标题:Android AndroidManifest 文件中少一个&q

      本文链接:https://www.haomeiwen.com/subject/mnkrjttx.html