问题:java
进行apk安装的时候,老是出现“Parse error when parsing manifest. Discontinuing installation.”错误。android
分析缘由:app
安装权限不够,须要申请:ui
一、<uses-permission android:name="android.permission.INSTALL_PACKAGES" />spa
二、须要安装的apk文件的777(-rwxrwxrwx)权限。正常下载下来的apk为“-rw-------”权限,安装须要“-rwxrwxrwx”权限;code
三、须要安装apk所在目录的777(-rwxrwxrwx)权限。get
解决方案:cmd
//获取文件夹路径 private String getFolderPath(String filePath) { String folderPath = filePath; int pos = filePath.lastIndexOf("/"); if (pos != -1) { folderPath = filePath.substring(0, pos); } return folderPath; } //安装 apk public boolean installApk(String fileName) { Log.d("test", fileName); //fileName = "/sdcard/xxx.apk"; try { String strPath = getFolderPath(fileName); String cmd = "chmod 777 " + strPath; Runtime runtime = Runtime.getRuntime(); Process proc = runtime.exec(cmd); } catch (IOException e) { // TODO Auto-generated catch block1 e.printStackTrace(); }//.getContext() try { String cmd = "chmod 777 " + fileName; Runtime runtime = Runtime.getRuntime(); Process proc = runtime.exec(cmd); } catch (IOException e) { // TODO Auto-generated catch block1 e.printStackTrace(); }//.getContext() Context context = getContext(); File apk = new File(fileName); if (apk.exists()) { Uri uri = Uri.fromFile(apk); Intent intent = new Intent(Intent.ACTION_VIEW); //intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setDataAndType(uri, "application/vnd.android.package-archive"); context.startActivity(intent); return true; } return false; }