0
我想從/path/to the/file.ext
(是的,它有空間,我懷疑這是至少部分麻煩)複製文件到/data/data/com.my_pkg.app/file.ext
。Android應用外殼「沒有這樣的文件或目錄」,罰款在一個文件瀏覽器和Adb
在我(根)的應用程序,我做的:
String cmd = "su -c \"cp /path/to\\ the/file.ext /data/data/com.my_pkg.app/file.ext\"";
try {
Process process;
process = new ProcessBuilder(cmd).start();
try {
process.waitFor();
} catch (InterruptedException e) {
e.printStackTrace();
}
} catch (IOException e1) {
e1.printStackTrace();
}
但是,這提出了一個IOException: no such file or directory
。
檢查我的理智,我打開了一個根文件瀏覽器應用程序,導航到上面的路徑,複製它,並將其粘貼到我的應用程序的目錄中,一切都很好。
爲什麼cp
找不到它? - 文件資源管理器應用程序必須在所有GUI下執行相同的操作(修改完成後才能工作!)。
編輯:完整的錯誤:
W/System.err(2441): java.io.IOException: Error running exec().
Command: [su -c "cp /path/to\ the/file.ext /data/data/com.my_pkg.app/file.ext"]
Working Directory: null
Environment: [ANDROID_ROOT=/system,
EMULATED_STORAGE_SOURCE=/mnt/shell/emulated,
LOOP_MOUNTPOINT=/mnt/obb,
EMULATED_STORAGE_TARGET=/storage/emulated,
ANDROID_BOOTLOGO=1, LD_LIBRARY_PATH=/vendor/lib:/system/lib,
EXTERNAL_STORAGE=/storage/emulated/legacy,
ANDROID_SOCKET_zygote=10,
ANDROID_DATA=/data,
PATH=/sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin,
ANDROID_ASSETS=/system/app, ASEC_MOUNTPOINT=/mnt/asec,
BOOTCLASSPATH=/system/framework/core.jar:/system/framework/conscrypt.jar:/system/framework/okhttp.jar:/system/framework/core-junit.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/framework2.jar:/system/framework/telephony-common.jar:/system/framework/voip-common.jar:/system/framework/mms-common.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/apache-xml.jar:/system/framework/webviewchromium.jar,
ANDROID_PROPERTY_WORKSPACE=9,0,
ANDROID_STORAGE=/storage]
請注意,您的** java ** IOException **不**來自'cp'找不到文件。相反,它可能來自未能找到可執行文件 - 這實際上是'su'而不是'cp'。 –
@ChrisStratton無法找到可執行文件? – OJFord
@ChrisStratton沒關係,你編輯英寸如何「幫助它找到」蘇'然後呢? – OJFord