андроид 9.x добиться применения установки обновления в пределах

Перемешайте три дня, наконец, решить эту проблему.

В зависимости следующим образом

Реализация «androidx.core: Core: 1.0.2» 
// Реализация «com.android.support:support-compat:28.0.0»
пакет поддержки, пробовал несколько версий всегда кучу советов
Дублирование класса android.support.v4. ...... 
переключился полагаться androidx, замена не может забыть значение имени AndroidManifest.xml
    <использование-разрешение андроид: имя = "android.permission.INTERNET" /> 
    <использует-разрешение андроид: имя = "android.permission.ACCESS_FINE_LOCATION" /> 
    <использует-разрешение андроид: имя = "android.permission.INTENT" / > 
    <использует-разрешение андроида: имя = "android.permission.REQUEST_INSTALL_PACKAGES" /> 
    <приложение 
        Android: тема = "@ стиль / AppTheme" 
        андроид: networkSecurityConfig = "@ XML / network_security_config" 
        > 
        <деятельность андроида:. имя =»UpdateActivity "/> 
        <поставщик андроид: власти = "$ {} ApplicationID .fileprovider" 
            андроид: имя =" androidx.core.content.FileProvider» 
            андроид: экспортироваться =„ложь“
            андроид: grantUriPermissions = "истинное"> 
            <мета-данные
                андроид: имя = "android.support.FILE_PROVIDER_PATHS" 
                андроид: ресурс = "@ XML / путь_к_файл" /> 
        </ поставщик> 
    </ приложение>

Инструменты ниже

    общественности статической недействительным installApk (активность активность, Файл apkFile) { 
        Intent намерения = новый Intent (); 
        intent.addFlags (Intent.FLAG_ACTIVITY_NEW_TASK); 
        // Uri Uri = Uri.fromFile (apkFile); 
        Uri Uri = NULL ;
        // TODO N FileProvider 
        // TODO O установить разрешение , 
        если (Build.VERSION.SDK_INT> = Build.VERSION_CODES.N) { 
            URI = androidx.core.content.FileProvider.getUriForFile (активность, activity.getPackageName () +». Fileprovider " , apkFile); 
            intent.addFlags (Intent.FLAG_GRANT_READ_URI_PERMISSION);
            intent.addFlags (Intent.FLAG_GRANT_WRITE_URI_PERMISSION); 
        } Иначе { 
            URI = Uri.fromFile (apkFile); 
        } 
        Intent.setDataAndType (URI, "приложение / vnd.android.package-архив" ); 
        activity.startActivity (намерение); 
    }

Кроме того, чтобы просто указать, чтобы избежать ошибок

Дублирование класса android.support.v4.app.INotificationSideChannel найденного в модулях classes.jar (androidx.core: ядро: 1.0.2) и classes.jar (com.android.support:support-compat:25.3.1 ) 
Дублирование класса андроида .support.v4.app.INotificationSideChannel $ заглушка найдено в модулях classes.jar (androidx.core: ядро: 1.0.2) и classes.jar (com.android.support:support-compat:25.3.1 ) 
Дублированный класса андроида. support.v4.app.INotificationSideChannel $ заглушка $ Proxy найдены в модулях classes.jar (androidx.core: ядро: 1.0.2) и classes.jar (com.android.support:support-compat:25.3.1 ) 
Дубликат класса андроида .support.v4.os.IResultReceiver найдено вМодули classes.jar (androidx.core: ядро: 1.0.2) и classes.jar (com.android.support:support-compat:25.3.1 ) 
Дубликат класс android.support.v4.os.IResultReceiver $ Заглушка найдены в модулях classes.jar (androidx.core: ядро: 1.0.2) и classes.jar (com.android.support:support-compat:25.3.1 ) 
Дублирование класс android.support.v4.os.IResultReceiver $ заглушка $ Proxy найдено в модули classes.jar (androidx.core: ядро: 1.0.2) и classes.jar (com.android.support:support-compat:25.3.1 ) 
Дублирование класса android.support.v4.os.ResultReceiver найдено в классах модулей. банка (androidx.core: ядро: 1.0.2) и classes.jar (com.android.support:support-compat:25.3.1 )
Дубликат класс android.support.v4.os.ResultReceiver $ 1 найдено в модулях classes.jar (androidx.core: ядро: 1.0.2) и classes.jar (com.android.support:support-compat:25.3.1 ) 
Дубликат класс android.support.v4.os.ResultReceiver $ MyResultReceiver найдены в модулях classes.jar (androidx.core: ядро: 1.0.2) и classes.jar (com.android.support:support-compat:25.3.1 ) 
Дубликат класс android.support.v4.os.ResultReceiver $ MyRunnable найдено в модулях classes.jar (androidx.core: ядро: 1.0.2) и classes.jar (com.android.support:support-compat:25.3.1 ) 

Перейти к документации , чтобы узнать , как исправить ошибки разрешения зависимостей.

Решения, добавьте следующий код в gradle.properties

android.useAndroidX = верно 
android.enableJetifier = верно

Последний писал о двух XML-файлах AndroidManifest.xml упомянутых под папкой / XML Реза

network_security_config.xml

<? XML версия = "1.0" кодирование = "UTF-8"?> 
<сетевой безопасность конфигурация> 
    <база-конфигурация cleartextTrafficPermitted = "истинная" /> 
</ сетевая безопасность конфигурация>

filepath.xml

<? XML версия = "1.0" кодирование = "UTF-8"?> 
<дорожки XMLNS: андроид = "http://schemas.android.com/apk/res/android"> 
    имя <корневой путь = "корень" путь = "" /> 
    <Имя файла-путь = "файлы" путь = "" /> 
    <Имя внешнего пути = «внешний» путь = «» /> 
    <Внешний-кэш-путь имя = "external_cache" путь = "" /> 
    <Имя внешнего файла-путь = "external_file" путь = "" /> 
</ Пути>

 

рекомендация

отwww.cnblogs.com/htsky/p/11404946.html