我的 Android 应用程序不支持 Android 版本 9

Posted

技术标签:

【中文标题】我的 Android 应用程序不支持 Android 版本 9【英文标题】:My Android app not supporting Android version 9 【发布时间】:2019-06-13 21:18:01 【问题描述】:

我制作了一个使用 webView 的 android 应用程序。一切都很好,直到我在 Android P 上尝试了我的应用程序。在 Android“P”上,应用程序直接显示错误页面,即应用程序无法使用互联网连接,即使它处于打开状态。

Android 清单文件:

    <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.xxx.xxxxx.xxxxx">

    <!-- android:roundIcon="@mipmap/ic_launcher_round" -->

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.CAMERA" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/icon"
        android:label="@string/app_name"
        android:hardwareAccelerated="true"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name="com.xxxxx.xxxxx.xxxxxx.MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

Gradle 文件:

    apply plugin: 'com.android.application'

android 
    compileSdkVersion 28
    defaultConfig 
        applicationId "com.xxx.xxx.xxx"
        minSdkVersion 19
        targetSdkVersion 28
        versionCode 3
        versionName "3.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    
    buildTypes 
        release 
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        
    


dependencies 
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation 'com.android.support:design:28.0.0'

在Android P中出现错误,直接访问此部分:

public void onReceivedError(WebView view, int errorCode,
                                        String description, String failingUrl) 
                // You can redirect to your own page instead getting the default error page

                super.onReceivedError(view, errorCode, description, failingUrl);
                String path = Uri.parse("file:///android_asset/error.html").toString();
                webView.loadUrl("about:blank");
                view.loadUrl(path);
            

【问题讨论】:

1.关于错误的信息不足。请编辑您的问题以包含正在生成的错误。 2) 我会尝试将file:///android_asset/error.html 作为没有 Uri.parse() 的普通字符串。 谢谢,我删除了 .html 文件以查看确切的错误。 WebView showing ERR_CLEARTEXT_NOT_PERMITTED although site is HTTPS的可能重复 【参考方案1】:

我不是 Android 专家,但您已告诉 Gradle,您不想在 gradle 文件中支持低于 19 版的 Android。

更改它以匹配您真正想要支持和重建您的应用的最低版本。您可能会遇到构建错误,指出您不应该使用的 API,以及其他可移植性问题。纠正他们。

参考:

"Picking your compileSdkVersion, minSdkVersion, and targetSdkVersion"

【讨论】:

【参考方案2】:

我发现了错误,net:ERR_CLEARTEXT_NOT_PERMITTED 解决方案是WebView showing ERR_CLEARTEXT_NOT_PERMITTED although site is HTTPS

【讨论】:

以上是关于我的 Android 应用程序不支持 Android 版本 9的主要内容,如果未能解决你的问题,请参考以下文章

请问,我的androi studio中动态申请权限,Manifest.permission.WRITE_EXTERNAL_STORAGE

在 Android Marshmallow 检查权限

Android Camera2 永久权限

Android可绘制背景角不删除

执行第一个 Android 检测测试时显示文件错误

基于androi的医院挂号预约系统app