3月初谷歌发布了Android Studio 2.3,博主这一阵认真用2.3把之前的项目重编了一下,发现了不少兼容性问题,于是决定开个贴记录一下这些疑难杂症。
一、首先是升级完毕之后,原来的项目居然编译不过了,原因是Android Studio 2.3与其自带的Gradle闹矛盾,需要把Gradle升级到3.3并做一系列的配置调整才行,具体操作步骤详见博文《 Android Studio升级到2.3的编译问题解决办法》。
二、在管理WIFI或者热点操作时,原本都要先调用以下代码获取WifiManager的实例:
这句话的大意是,无线网络服务WIFI_SERVICE必须由Application的上下文去获取,否则的话,在7.0以下的设备中会发生内存泄漏。所以要在getSystemService方法之前加上“getApplicationContext()”,代码举例如下:
三、把编译好的工程导出apk安装包,前几个弹窗没什么变化,可是最后一个窗口突然增加了几个复选框,如下图所示:
光看字面意思,左边复选框的意思是给jar包签名,右边复选框的意思是给apk签名“V2 (Full APK Signature)”,所以本人毫不犹豫地勾选了右边的复选框。没想到最后生成的apk,却无法在大多数手机上安装,只能在Android7.0上安装。查了很久才发现,正确的做法是勾选左边的复选框“V1 (Jar Signature)”,然后才能导出可以正常安装的apk。
需要注意的是,如果不是通过菜单导出apk,而是通过命令行导出apk,那么需要修改模块的build.gradle,在里面的“signingConfigs”——“release”节点下面增加一行“v2SigningEnabled false”,表示关闭V2的签名操作。举例如下:
点此查看Android开发笔记的完整目录
一、首先是升级完毕之后,原来的项目居然编译不过了,原因是Android Studio 2.3与其自带的Gradle闹矛盾,需要把Gradle升级到3.3并做一系列的配置调整才行,具体操作步骤详见博文《 Android Studio升级到2.3的编译问题解决办法》。
二、在管理WIFI或者热点操作时,原本都要先调用以下代码获取WifiManager的实例:
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()”,代码举例如下:
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的签名操作。举例如下:
signingConfigs {
release {
storeFile file("release.keystore")
storePassword "password"
keyAlias "release"
keyPassword "password"
v2SigningEnabled false
}
}
点此查看Android开发笔记的完整目录