首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MAUI Android 10以编程方式安装APK

MAUI Android 10以编程方式安装APK
EN

Stack Overflow用户
提问于 2022-10-24 10:09:37
回答 1查看 121关注 0票数 2

我正在尝试安装我下载到Android10下载文件夹的.apk,我尝试过这个Xamarin Android 7+ install APK programmatically

我犯了这个错误:

"/data/app/{PackName}-aV7Nkryw8OSTkpHc_8WmMg==/base.apk",nativeLibraryDirectories=/data/app/{PackName}-aV7Nkryw8OSTkpHc_8WmMg==/lib/arm64,/data/app/{PackName}-aV7Nkryw8OSTkpHc_8WmMg==/base.apk!/lib/arm64-v8a,Java.Lang.RuntimeException:‘无法获得提供者android.support.v4.content.FileProvider: java.lang.ClassNotFoundException:没有在路径上找到"android.support.v4.content.FileProvider“类: DexPathList[zip文件android.support.v4.content.FileProvider /system/lib64 64,/

/lib64 64]’

AndroidManifest.xml

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="{PackName}">
    <application android:allowBackup="true" android:icon="@mipmap/appicon" android:roundIcon="@mipmap/appicon_round" android:supportsRtl="true" android:label="{Label}">
        <provider android:name="android.support.v4.content.FileProvider" android:authorities="{PackName}.provider" android:exported="false" android:grantUriPermissions="true">
            <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/provider_paths" />
        </provider>
    </application>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.INSTALL_PACKAGES" />
    <uses-sdk android:minSdkVersion="24"/>
</manifest>

provider_paths.xml

代码语言:javascript
复制
<paths xmlns:android="http://schemas.android.com/apk/res/android">
        <external-path name="external_files" path="." />  
</paths>

代码:

代码语言:javascript
复制
Context context = AndroidApp.Context;
var file = new Java.IO.File(fileUri);
if (Build.VERSION.SdkInt >= BuildVersionCodes.N)
{
    var apkUri = FileProvider.GetUriForFile(context, context.ApplicationContext.PackageName + ".provider", file);
    Intent intentS = new Intent(Intent.ActionInstallPackage);
    intentS.SetData(apkUri);
    intentS.SetFlags(ActivityFlags.GrantReadUriPermission);
    context.StartActivity(intentS);
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-25 03:13:40

由于目标框架被设置为Android10或更高版本,而且您仍然在使用旧的包,所以可以尝试将android.support.v4.FileProvider更改为androidx.core.content.FileProvider

您可以参考以下代码:

代码语言:javascript
复制
<provider android:name="androidx.core.content.FileProvider" android:authorities="${applicationId}.provider" android:exported="false" android:grantUriPermissions="true">
        <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/provider_paths" />
</provider>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74179583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档