解决app在Android P中安装失败以及不兼容问题

Android P即Android 9.0 在Google IO2018正式面向全球发布,它的代号是Pie,仍然基于Linux内核构建。全新的手势操作选项。底部虚拟键将由小白点和一颗返回键取代。通过轻触回到主页、长按呼出语音助手。新的特性主要有:

  1. 利用 Wi-Fi RTT 进行室内定位
  2. 刘海平API支持
  3. 通知栏功能增强
  4. 多摄像头支持和摄像头更新
  5. HDR VP9 视频、HEIF 图像压缩和 Media API
    可以先阅读:https://ywnz.com/linuxxw/2556.html
    详细可参考Google官方文档介绍。

Android 9.0模拟器搭建

目前Android 9.0只在少数的几款手机上能够升级,如果暂时还不想购买手机,模拟器就会是最佳选择,首先在AndroidStudio的Tools目录下找到Android,点开目录下的AVD Manager。

在弹出的窗口中选择Craet Virtual Device按钮。根据提示下载API 28的SDK资源与Image资源等,下载速度较慢,最好准备处理网站访问问题。

下载完之后别忘了更新gradle配置:

androidTargetSdkVersion = 28
androidCompileSdkVersion = 28

运行项目过程中所遇到的问题记录一下:

1.下载完成后打开模拟机,运行项目,结果apk安装失败,提示报错:

解决办法是先Clean Project,再Rebuild Project

2.处理 android 方法总数超过 65536 . the number of method references in a .dex file exceed 64k


应用中的Dex 文件方法数超过了最大值65536的上限,简单来说,应用爆棚了.

我用的解决方案是分割 Dex 文件实现方法

defaultConfig {

    multiDexEnabled true

}

dependencies {

implementation'com.android.support:multidex:1.+'

}

然后修改自定义的application类继承MultiDexApplication类

修改完之后就可以正常运行了

3.CLEARTEXT communication to life.115.com not permitted by network security policy

问题原因: Android P 限制了明文流量的网络请求,非加密的流量请求都会被系统禁止掉

解决方案:

在资源文件新建xml目录,新建文件network_security_config.xml

<?xml version="1.0"encoding="utf-8"?>

<network-security-config>

    <base-config cleartextTrafficPermitted="true" />

</network-security-config>

清单文件配置:android:networkSecurityConfig="@xml/network_security_config"

但还是建议都使用https进行传输

猜你喜欢

转载自blog.csdn.net/qq_31207845/article/details/83650771
今日推荐