前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android Studio 2.3的各种新增疑难杂症

Android Studio 2.3的各种新增疑难杂症

作者头像
aqi00
发布2019-01-18 15:12:54
4820
发布2019-01-18 15:12:54
举报
文章被收录于专栏:老欧说安卓老欧说安卓

3月初谷歌发布了Android Studio 2.3,博主这一阵认真用2.3把之前的项目重编了一下,发现了不少兼容性问题,于是决定开个贴记录一下这些疑难杂症。 一、首先是升级完毕之后,原来的项目居然编译不过了,原因是Android Studio 2.3与其自带的Gradle闹矛盾,需要把Gradle升级到3.3并做一系列的配置调整才行,具体操作步骤详见博文《Android Studio升级到2.3的编译问题解决办法》。 二、在管理WIFI或者热点操作时,原本都要先调用以下代码获取WifiManager的实例:

代码语言:javascript
复制
WifiManager mWifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);

但是在Android Studio 2.3中提示该行代码编译失败,失败描述为“Error:Error: The WIFI_SERVICE must be looked up on the Application context or memory will leak on devices < Android N. Try changing  to .getApplicationContext()  [WifiManagerLeak]”, 这句话的大意是,无线网络服务WIFI_SERVICE必须由Application的上下文去获取,否则的话,在7.0以下的设备中会发生内存泄漏。所以要在getSystemService方法之前加上“getApplicationContext()”,代码举例如下:

代码语言:javascript
复制
WifiManager mWifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);

三、把编译好的工程导出apk安装包,前几个弹窗没什么变化,可是最后一个窗口突然增加了几个复选框,如下图所示:

光看字面意思,左边复选框的意思是给jar包签名,右边复选框的意思是给apk签名“V2 (Full APK Signature)”,所以本人毫不犹豫地勾选了右边的复选框。没想到最后生成的apk,却无法在大多数手机上安装,只能在Android7.0上安装。查了很久才发现,正确的做法是勾选左边的复选框“V1 (Jar Signature)”,然后才能导出可以正常安装的apk。 需要注意的是,如果不是通过菜单导出apk,而是通过命令行导出apk,那么需要修改模块的build.gradle,在里面的“signingConfigs”——“release”节点下面增加一行“v2SigningEnabled false”,表示关闭V2的签名操作。举例如下:

代码语言:javascript
复制
  signingConfigs {
   release {
    storeFile file("release.keystore")
    storePassword "password"
    keyAlias "release"
    keyPassword "password"
    v2SigningEnabled false
   }
  }

点此查看Android开发笔记的完整目录

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年05月02日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档