アンドロイド9.xのは内の更新インストールアプリケーションを実現します

三日トス、最終的に問題を解決しました。

次のように依存

実装「androidx.core:コア:1.0.2」
//実装「com.android.support:support-compat:28.0.0」
サポートパッケージは、常に先端の束をいくつかのバージョンを試してみました
クラスandroid.support.v4を複製します。...... 
androidxを頼りに切り替え、交換は名前値のAndroidManifest.xmlを忘れることができません
    <使用許可アンドロイド:名=「android.permission.INTERNETあなた」/> 
    <使用許可アンドロイド:名=「QRアプリケーション」/> 
    <使用許可アンドロイド:名前は=「android.permission.INTENT」/ > 
    <使用許可アンドロイドを:名前= "android.permission.REQUEST_INSTALL_PACKAGES" /> 
    <アプリケーション
        アンドロイド:テーマ= "@スタイル/ AppTheme" 
        アンドロイド:networkSecurityConfig = "@のXML / network_security_config" 
        > 
        <活動アンドロイド:名=」UpdateActivity "/> 
        <プロバイダーアンドロイド:当局= "$ {} APPLICATIONID .fileprovider" 
            アンドロイド:名=" androidx.core.content。 
            <メタデータFileProvider」 
            アンドロイド:=エクスポート『偽』
            アンドロイド:grantUriPermissions = "真">
                アンドロイド:名= "android.support.FILE_PROVIDER_PATHS" 
                アンドロイド:リソース= "@ XML /ファイルパス" /> 
        </プロバイダ> 
    </アプリケーション>

以下のツール

    パブリック静的ボイドinstallApk(アクティビティ活性、apkFileファイル){ 
        意図意図 = 新しいテント()。
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)。
        // ウリのuri = Uri.fromFile(apkFile)。
        ウリの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(com.android.support:support-compat:25.3.1モジュールclasses.jar(:コア1.0.2 androidx.core) 
重複クラスアンドロイド.support.v4.app.INotificationSideChannel $スタブが見つかりました。とclasses.jar(com.android.support:support-compat:25.3.1モジュールclasses.jar(1.0.2:コアandroidx.core) 
クラスのアンドロイドを複製します。 support.v4.app.INotificationSideChannel $スタブ$プロキシが見つかりました。とclasses.jar(com.android.support:support-compat:25.3.1モジュールclasses.jar(::コア1.0.2 androidx.core) 
重複したクラスのアンドロイド.support.v4.os.IResultReceiverが見つかりました。モジュールclasses.jarとclasses.jar(com.android.support:support-compat:25.3.1(androidx.core:1.0.2:コア)
の重複クラス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 $スタブ$プロキシが見つかりました。モジュール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(com.android.support:support-compat:25.3.1モジュールclasses.jar(::コア1.0.2 androidx.core) 
の重複クラス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 = 

最後は、RES / XMLフォルダの下に、AndroidManifest.xmlには言及についての2つのXMLファイルを投稿します

network_security_config.xml

<?xml version = "1.0"エンコード= "UTF-8"?> 
<ネットワークセキュリティ設定> 
    <ベースコンフィグcleartextTrafficPermitted = "TRUE" /> 
</ネットワークセキュリティ設定>

filepath.xml

<?xml version = "1.0"エンコード= "UTF-8"?> 
<パスのxmlns:アンドロイド= "http://schemas.android.com/apk/res/android"> 
    <ルートパス名= "ルート"パス= "" /> 
    <ファイル・パス名=「ファイル」パス=「」/> 
    <外部パス名=「外部」パス=「」/> 
    <外部キャッシュ・パス名=「external_cache」パス=「」/> 
    <外部ファイル・パス名=「external_file」パス=「」/> 
</パス>

 

おすすめ

転載: www.cnblogs.com/htsky/p/11404946.html