gpt4 book ai didi

Android 异常 'open failed: EACCES (Permission denied)' - 不是由于 SD 卡

转载 作者:行者123 更新时间:2023-11-30 03:30:28 30 4
gpt4 key购买 nike

我在将文件(.so 二进制文件)从我的 Assets 目录复制到应用安装“/data/data/name.ofmy.app/lib”目录时遇到问题。

当我尝试时出现以下错误:

07-09 11:00:48.902: W/System.err(25122): java.io.FileNotFoundException: /data/data/name.ofmy.app/lib/libOlsrdPudWireFormat.so: open failed: EACCES (Permission denied)

当执行以下代码时会发生这种情况:

if ((so = new File(dir, fileName)).exists()) {
/*
* Check to see if this timestamp pre-dates the current package
*/
if ((pkg = new File(ctx.getPackageResourcePath())).exists()) {
if (pkg.lastModified() < so.lastModified()) {
Log.v(TAG, "extractFile: File up to date");
return;
}
}
Log.v(TAG, "extractFile: library present but out of date");
so.delete();
}
Log.v(TAG, "extractFile: copying library");
InputStream in = ctx.getAssets().open(name);
FileOutputStream out = new FileOutputStream(so);

它在 InputStream in = ctx.getAssets().open(name); 处中断当不存在具有该名称的现有文件时...

我一直在 Stack Overflow 上阅读类似的问题,但不幸的是这没有帮助。大多数都在复制到 SD 卡,但我没有。

同样奇怪的是,我的 Assets 中也提供了以前的目录(/bin 而不是/lib),确实可以毫无问题地复制到同一/dat/data... 目录中!

我尝试添加 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />许可无效。

我什至尝试添加 Runtime.getRuntime().exec("su");就在我尝试复制任何东西之前,也无济于事。

顺便说一句,这是一部 root 手机!

我还仔细检查了文件是否真的存在于 Assets 中,确实存在!

最佳答案

为了尝试,我将目录名称从 lib 更改为 libs(因为如我的问题所述,我还复制了另一个名为 /的目录bin 没有任何问题)然后猜猜是什么:现在可以了!

复制时似乎不能使用 /lib 目录名。不过,我不知道为什么。

关于Android 异常 'open failed: EACCES (Permission denied)' - 不是由于 SD 卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17544454/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com