美文网首页
Android Studio 项目打包成apk时 Signatu

Android Studio 项目打包成apk时 Signatu

作者: Sekale | 来源:发表于2017-11-27 14:56 被阅读1640次

    在第一次进行apk打包时,点击Build->Generate Signed APK,选择好之后按Next后,有一个Signature Versions的选项。

    图1 生成APK前的最后一步

    在完全不了解的情况下,我想着肯定越高级的越好用,于是只给V2前打了勾。之后出现的问题是,在Android7.0的设备上可以安装并运行,在Android5.1上却报出“安装包已损坏”的错误。

    因而在此对该知识点做下记录。

    Signature Version安卓项目打包时的两种签名方式:

    V1(Jar Signature): 传统通用方式。来自JDK。

    V2(Full APK Signature): Android 7.0 引入的新方式。安装更快、验证方式更安全。不适用于旧安卓版本,且不强制。完整信息可参考—— https://developer.android.google.cn/about/versions/nougat/android-7.0.html#apk_signature_v2 

    所以为了追求更完美的发挥,应将两个勾同时勾上。若不勾选V1,则旧安卓版本无法安装;若不勾选V2,则对于Android7.0设备就舍弃了更快更安全的方式。


    另外,这次开发中有涉及到对Double取精度的语句。网上查资料后我选择了DecimalFormat。但是在智能提示中我选择了android.icu.text.DecimalFormat,刚写完就报错,显示该语句需要 API Level 24 以上,而我的最低需求只有15。

    于是我初生牛犊不怕虎地在 app\build.gradle 把最低需求一改,继续写了下去。

    然后实际运行时在 Android5.1 闪退了。

    于是我仔细观察后发现原来还有 java.text.DecimalFormat 这种通用的语句,只不过可能因为是 Android 开发所以就被挤到智能提示的后面去了。这种就能在各种安卓版本上完美运行了。

    还有很多对象都是类似的情况,比如 BigDecimal、NumberFormat、SimleDateFormat 等等。以前也遇到过,但是由于不需要在真机运行,所以都是改一改最低需求然后继续。本以为就是个很简单的小程序,在虚拟机上跑的很完美。没想到在实际运行的时候会出这么多问题。但毕竟这是第一次嘛。并且我期待着,能够遇到并且解决更多的问题。这是提升自己水平的最快方法啦。


    狠下心写的第一篇博客,值得纪念~我希望自己能坚持下去!

    相关文章

      网友评论

          本文标题:Android Studio 项目打包成apk时 Signatu

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