解决安卓系统和app直播源代码的兼容问题

解决安卓Android7.0兼容问题(兼容Android6.0到Android9.0)
当你处于Android7.0环境下,开发的app直播源代码快收尾完了的时候,进入测试环境Android9.0发生错误
是不是特别郁闷怎么突然错误了,我们先来看看错误(这里使用HUAWEI Mate 20 Pro为例,ps:华为的系统是基于安卓之上再次开发封装的系统):

在这里插入图片描述

 

 Process: com.dynamic_img1.braindevelopment, PID: 5221
    java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object com.alibaba.fastjson.JSONObject.get(java.lang.Object)' on a null object reference
        at com.jzy.braindevelopment.MainActivity$1.handleMessage(MainActivity.java:60)

没错,在Android7.0环境下运行好好的app直播源代码到了Android9.0环境下发生错误
不难看出空指针问题,接下来我们看看Android7.0与Android9.0的不同:
经过百度的了解发现有那么几个改动
1.Android9.0访问网络有改变了 像之前的okhttp都不能跑了
2.Black list:三方应用不允许调用
3.API 等级低于24的设备上,org.apache.http.legacy 库不可用(在这些设备上,Apache HTTP 类在 bootclasspath 上可用)
总而言之就是在网络请求方面发生了改动
接下来就是解决这些问题
找到app直播源代码项目的父build.gradle
改成:

		targetSdkVersion 26

找到AndroidManifest.xml 文件中添加:

<uses-libraryandroid:name="org.apache.http.legacy"android:required="false"/>

项目成功在Android9.0环境下运行

想着兼容了Android9.0不如连Android6.0一起兼容,当我准备好环境跑时,Android Studio提示:
在这里插入图片描述

好吧,又发生错误了继续修改,还是找到app直播源代码项目的父build.gradle

		targetSdkVersion 26
        minSdkVersion 23
        maxSdkVersion 29

 

再次运行成功完美解决了Android6.0–Android9.0差异

环境参数:

  defaultConfig {
        applicationId "com.dynamic_img1.braindevelopment"
        useLibrary 'org.apache.http.legacy'
        versionCode currentVersionCode
        versionName currVersionName
        testInstrumentationRunner "android.support.Test.runner.AndroidJUnitRunner"
        vectorDrawables.useSupportLibrary = true
        signingConfig signingConfigs.debug
        targetSdkVersion 26
        minSdkVersion 23
        maxSdkVersion 29
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileSdkVersion = 29
}

以上就是有关于app直播源代码和安卓兼容的过程,如有错误联系更正谢谢

声明:本文由云豹科技转发自靜靜同學博客,如有侵权请联系作者删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值