当前位置: 代码迷 >> Android >> xutils没法进行下载了,总是提示EACCES(Permission denied),权限已加
  详细解决方案

xutils没法进行下载了,总是提示EACCES(Permission denied),权限已加

热度:145   发布时间:2016-04-28 02:08:25.0
xutils无法进行下载了,总是提示EACCES(Permission denied),权限已加
本帖最后由 franky814 于 2015-03-02 20:08:20 编辑
模拟下载的文件是在我电脑上的,单独在浏览器可以打开下载的

在模拟器中报错:java.io.IOException:open failed:EACCES(Permission denied)

在我的nexus5 中报错:java.io.IOException:stack size 1036KB

控制台报错:E/RetryHandler.retryRequest(L:91)(11812): retry error, curr request is null

是xutils框架的问题吗?求高手解答啊
权限:
 <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />


xutils的使用代码:
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
HttpUtils http = new HttpUtils();
HttpHandler handler = http.download("http://192.168.0.254:8080/apkupdate/xxx.apk",
Environment.getExternalStorageDirectory().getAbsolutePath()
+ "/xxx.apk", true, // 如果目标文件存在,接着未完成的部分继续下载。服务器不支持RANGE时将从新下载。
true, // 如果从请求返回信息中获取到文件名,下载完成后自动重命名。
new RequestCallBack<File>() {

@Override
public void onStart() {
}

@Override
public void onLoading(long total, long current,
boolean isUploading) {

tv_update.setVisibility(View.VISIBLE);
tv_update.setText("更新进度 " + (current * 100 / total)
+ "%");
}

@Override
public void onSuccess(ResponseInfo<File> responseInfo) {
// File f = responseInfo.result;
// installApk(f);
tv_update.setVisibility(View.VISIBLE);
tv_update.setText("downloaded:" + responseInfo.result.getPath());

}

@Override
public void onFailure(HttpException error, String msg) {
Log.e(TAG, msg);
tv_update.setVisibility(View.VISIBLE);
tv_update.setText(msg);
enterHome();
}
});
} else {
Toast.makeText(SplashActivity.this, "试试插上SD卡吧", 0).show();
return;
}

------解决思路----------------------
nexus5的android系统是5.0的吗?如果是5.0的话去github下载最新的xUtils包试试
------解决思路----------------------
第一个是不是模拟器的sd card没有设置size导致的呢?因为你有权限了

第二个,貌似是xutil的bug,github上有人反馈过了,是在5.0……
https://github.com/wyouflf/xUtils/issues/81
  相关解决方案