【发布时间】:2018-06-08 08:53:47
【问题描述】:
我正在尝试将一个 apk 写入 Android 模拟器中的 /system/app 位置。这是我的代码:
File path = Environment.getRootDirectory();
File fileToWrite = new File(path, "/" + fileName);
byte[] buff = new byte[1024];
int l = 0;
// write buffer to file
FileOutputStream fos = new FileOutputStream(fileToWrite);
while((l = zis.read(buff)) > 0){
fos.write(buff,0, l);
}
fos.close();
我的 AndroidManifest.xml:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
但是,我收到以下错误消息:
java.io.FileNotFoundException: /system/MainApp-debug.apk (只读 文件系统) 06-08 08:51:59.858 2921-3160/com.mainapp W/System.err:在 java.io.FileOutputStream.open0(本机方法) 在 java.io.FileOutputStream.open(FileOutputStream.java:287)
我设法使用相同的代码写入/mnt/sdcard/Download 文件夹。但我不确定为什么它无法写入/system/app 文件夹。
有什么想法吗?谢谢!
【问题讨论】:
-
你的代码是正确的问题是模拟器文件系统。您要写入的位置是只读的
-
有什么办法可以改吗?
-
Nope 你尝试在移动设备上运行该应用程序,如果它运行良好,它的明显模拟器有问题
-
与模拟器无关。该路径是只读的。开始根您的设备。
-
@greenapps 我明白了,所以问题是因为模拟器没有植根?这就是我无法对其执行“su”命令的原因吗?