从内存安装APK

时间:2014-03-09 09:18:39

标签: android android-intent apk android-install-apk

我知道这个问题之前已被多次询问过,但没有一个解决方案解决了我的问题。 我在内存上保存了一个APK:“/ data / data / [package-name] /files/0.apk” 我用它保存了它:

openFileOutput("0.apk", Context.MODE_WORLD_READABLE);

我想使用以下代码安装它,但我得到“解析包时出现问题”

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File(context.getFilesDir(), "0.apk")), "application/vnd.android.package-archive");
context.startActivity(intent);

LogCat说“解析清单时解析错误。停止安装”。请帮我解决这个问题。

编辑: 我决定为我的文件使用外部存储。当我将我的文件复制到SD卡并试图通过上面的代码安装它时,一切都很好。但是当我下载apk并将其存储在SD卡上时,同样的“解析错误......”再次出现。起初,我建议这是因为一个损坏的apk,但当我试图在我的应用程序之外安装它时,它工作。

2 个答案:

答案 0 :(得分:2)

解析清单时出现“解析错误。当您尝试安装已通过其他方式安装的应用程序时,通常会显示”停止安装“错误。例如,如果您的应用程序具有通过PlayStore安装的相同包名,现在您尝试安装表单adb,反之亦然。

另一个可能减少麻烦的选择是将apk复制到用户外部存储文件夹,然后尝试打开它。

答案 1 :(得分:0)

可能是由权限问题引起的。 请将apk文件复制到外部存储器。