Adroid studio升级与提升targetSdkVersion到28

       随着android 版本不得不断发布  也随着应用的发展吧由谷歌率先要求,所有 Google Play 的现有应用更新同样必须针对 Android 8.0

以下记录了我们升级targetSdkVersion的坑以及解决办法,希望对各位开发者有帮助。

以前本人的android studio版本为3.01(老了一点,不过用着还好),本来以为直接修改targetSdkVersion,然后下载一堆文件就好了,结果试了一下,一直报没有这个库什么玩意的,很是头大,所以请教了大佬一番,说android studio进行下升级就好了,所以今天就进行了一下尝试

     1、我用的android studio自带的更新方式

           选择File > Settings菜单选择Appearance & Behavior > System Settings > Updates

然后又四个版本分别是

table Channel(稳定版)

Beta Channel(测试版)

Dev Channel(开发版)

Canary Channel(金丝雀版,更新最频繁)

对于这个没什么好选的看这个喜欢把我选的是稳定版的然后开始下载  安装这个东西很简单自己看看就行

遇到困难可以看看这个、

https://www.cnblogs.com/whycxb/p/9598417.html 

说的比较详细

然后更新完问题提就来了targetSdkVersion报错  公司老版本是23 超级古董的那种

报错信息提示是要修改到26以上,我就干脆整到28,然后修改一系列常规操作,但是到修改到

com.android.support:suppor就开始报错

说是两个库,必须要删除一个


报错

大概报这个错,然后一阵分析,几番更改,最后改了这个样子,终于不报错了


大概就是这样终于不报错了

然后他又说

The minSdk version should not be declared in the android manifest file. You can move the version from the manifest to the defaultConfig in the build.gradle file.

The targetSdk version should not be declared in the android manifest file. You can move the version from the manifest to the defaultConfig in the build.gradle file.

这个错误,大概意思是不应该在这用minSdk   然后我把


这个注释掉这个是在清单里面的,没啥用,大概看看报错信息就能懂什么意思

修改之后然后错误还没完,不过这一次就比较简单了

大概意思是compile 不能用了 要换成 implementation,Google IO大会好像也说过 ,说是编译速度会提高什么的,这个是强制的,只要你升级就要改

然后请求网络又出现了了毛病

java.net.UnknownServiceException:CLEARTEXT communication**not permitted by network security policy大概就是这个错

意思是说

当API级别为28及以上时,应用使用的如果是非加密的明文流量的http网络请求,则会导致该应用无法进行网络请求,https则不会受影响,网上提供了三种方案:

APP改用https请求

targetSdkVersion 降到27及以下在 res 下新增一个 xml 目录,然后创建一个名为:network_security_config.xml 文件(名字可自定),大概意思就是允许开启http请求,内容如下:

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

<network-security-config>

<base-config cleartextTrafficPermitted="true"/>

</network-security-config>

然后在APP的AndroidManifest.xml文件下的application标签增加以下属性即可完成:

<application

android:networkSecurityConfig="@xml/network_security_config"/>

然后继续来,到qq分享的又来了,说是找不到这个官方文件什么的

org/apache/http/conn/scheme/SchemeRegistry。

原因去搜搜是这个

从Android 9.0 开始,默认情况下移除HTTP客户端。QQ分享中SDK 使用到HTTP客户端,所以会找不到该库抛出异常。

解决,兼容http客户端

清单里面加上这个



再试试就OK  ,我遇到了大概就这么多问题  网上也有大佬遇到了许多问题,有兴趣可以去看看,或许可以帮到你们

targetSdkVersion升级到28一

https://www.jianshu.com/p/5f429c3d1256

Android 9.0适配及部分新特性介绍

https://cloud.tencent.com/developer/article/1370376

Android8.0修改的,具体可以去郭霖大佬的博客看看,里面有关于通知栏和图标的适配

Android通知栏微技巧,8.0系统中通知栏的适配

https://blog.csdn.net/guolin_blog/article/details/79854070

Android应用图标微技巧,8.0系统中应用图标的适配

https://blog.csdn.net/guolin_blog/article/details/79417483