码迷,mamicode.com
首页 > 移动开发 > 详细

应用商城 下载apk 安装包解析错误 没有权限 Permission denied Android - failed to open zip archive

时间:2014-07-02 11:13:56      阅读:844      评论:0      收藏:0      [点我收藏+]

标签:android   style   java   color   strong   文件   

1.错误提示:

03-31 16:48:43.740: INFO/ActivityManager(59): Start proc com.android.packageinstaller for activity com.android.packageinstaller/.PackageInstallerActivity: pid=620 uid=10026 gids={}
03-31 16:48:44.749: WARN/zipro(620): Unable to open zip '/data/data/com.my.app/cache/myApp.apk': Permission denied
03-31 16:48:44.749: DEBUG/asset(620): failed to open Zip archive '/data/data/com.my.app/cache/myApp.apk'
03-31 16:48:44.930: WARN/PackageParser(620): Unable to read AndroidManifest.xml of /data/data/com.my.app/cache/myApp.apk
03-31 16:48:44.930: WARN/PackageParser(620): java.io.FileNotFoundException: AndroidManifest.xml

2.错误提示显示:没有权限打开 压缩文件 
Unable to open zip '/data/data/com.my.app/cache/myApp.apk': Permission denied 。

3.知识要点:

    (1)做应用商城开发时 我们下载apk遇到一种情况就是 下载的apk 保存在哪里?两种情况: 一是保存在 sd卡,一是保存在机器本身的内存中。为了保证我们开发的应用商店能用,下载的apk最好保存在内存中,有可能有些机器没有sd卡(这不起怪,有些android电视机就不标配sd卡)。
     (2) 应用商城多线程下载apk 的时候没有问题,下载下来的apk数据包是完整的,用 U盘拷贝出来也可以安装。但是在静默安装时候提示Permission Denied ,但是我在安装此apk之前 修改了apk的权限:

String[] command = { "chmod", "-R", "777", apkFile.getPath() };
			ProcessBuilder builder = new ProcessBuilder(command);
			try {
				builder.start();
				if (Debug.isDebug) {
					Log.d("Download", "process builder start success");
				}
				break;
			} catch (IOException e) {
				connt = connt + 1;
				if (connt >= 10) {
					break;
				} else {
					Log.e("Download", "process builder start exception");
				}
			}

问题就出现在这里,权限虽然改了,但是修改权限的函数 
  <pre name="code" class="java">ProcessBuilder builder = new ProcessBuilder(command);
    builder.start();


是开启一个新的进程。此时就会出现线程异步操作问题,即:修改权限的进程和安装apk 的进程是一个异步线程操作,可能在安装apk 之前 对应的apk 权限还没有修改完成,所以出现了   提示Permission Denied 错误。


4.解决办法:

     在修改apk 的权限之后让主线程睡眠500ms 到1000ms 即可。

try {
			Thread.sleep(500);
		} catch (Exception e) {
			e.printStackTrace();
		}

                                                                                                                                     完结!

   

应用商城 下载apk 安装包解析错误 没有权限 Permission denied Android - failed to open zip archive,布布扣,bubuko.com

应用商城 下载apk 安装包解析错误 没有权限 Permission denied Android - failed to open zip archive

标签:android   style   java   color   strong   文件   

原文地址:http://blog.csdn.net/feiduclear_up/article/details/36380741

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!