尝试以编程方式安装apk时出现XMLResourceParserError

时间:2017-03-30 13:21:03

标签: android parse-error

我试图以编程方式下载并安装apk文件。

以下是我的代码,

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                Uri    apkUri = FileProvider.getUriForFile(MainActivity.activity, BuildConfig.APPLICATION_ID + ".provider", new File(mainActivity.destination));
                Intent intent = new Intent(Intent.ACTION_INSTALL_PACKAGE);
                intent.setData(apkUri);
                intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
                activity.startActivity(intent);
            } else {
                Intent intent = new Intent(Intent.ACTION_VIEW);
                intent.setDataAndType(Uri.fromFile(new File(mainActivity.destination)), "application/vnd.android.package-archive");
                mainActivity.context.startActivity(intent);
            }

但我得到以下错误,

  

致命异常:java.lang.NullPointerException:尝试调用   虚方法' android.content.res.XmlResourceParser   android.content.pm.ProviderInfo.loadXmlMetaData(android.content.pm.PackageManager,   java.lang.String中)'在空对象引用上

错误指向

        Intent intent = new Intent(Intent.ACTION_INSTALL_PACKAGE);

我怎样才能解决这个问题?

1 个答案:

答案 0 :(得分:2)

Uri apkUri = FileProvider.getUriForFile(MainActivity.activity,BuildConfig.APPLICATION_ID +“。provider”,new file(mainActivity.destination));

.fileprovider