問題: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; }