0

我在测试Android 7.0 安装APK 问题时,为何使用了新的安装方式还是不能安装提示 解析软甲包时出现问题

非常简单的代码:

一、 这是安装的逻辑。因为我是直接跑在Android模拟器上面的。所以没有做版本号的判断。

File apkFile = new File(Environment.getExternalStorageDirectory() + File.separator + "apkFile", "aaa.apk");
if (apkFile.exists()) {
    Intent intent = new Intent(Intent.ACTION_VIEW);
    Uri apkFileUri = FileProvider.getUriForFile(this, BuildConfig.APPLICATION_ID + ".fileprovider", apkFile);
    intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
    intent.setDataAndType(apkFileUri, "application/vnd.android.package-archive");
    startActivity(intent);
}

二、 这是 Provider 的配置。

<provider
    android:name="android.support.v4.content.FileProvider"
    android:authorities="com.example.along.installtest.fileprovider"
    android:exported="false"
    android:grantUriPermissions="true">
    <meta-data
        android:name="android.support.FILE_PROVIDER_PATHS"
        android:resource="@xml/file_path">

    </meta-data>
</provider>

三、这是权限的配置:

<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<permission android:name="android.permission.INSTALL_PACKAGES" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

四、这是xml文件中的共享目录配置:

<?xml version="1.0" encoding="utf-8"?>
<paths>
    <external-path
        name="apkFile"
        path="apkFile" />
</paths>

然后我将此项目的VersionCode调高之后,打包之后,放在对应的apkFile文件中,然后调低VersionCode打包,然后运行显示解析包错误。这个问题调了好久了。 请大神帮忙。。。。。。一下。 贼鸡儿烦。

2018-04-29 提问
1 个回答
0

你把file_path.xml里面的配置改成:<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/ap...;>

<external-path
    name="external_storage_root"
    path="." />

</paths>
试一下,我的改成这样就可以了,其他代码跟你一样

撰写答案

推广链接