我试图以编程方式下载并安装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);
我怎样才能解决这个问题?
答案 0 :(得分:2)
Uri apkUri = FileProvider.getUriForFile(MainActivity.activity,BuildConfig.APPLICATION_ID +“。provider”,new file(mainActivity.destination));
.fileprovider