Java.io.ioexception: error = 13, разрешение отказаноAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Java.io.ioexception: error = 13, разрешение отказано

Сообщение Anonymous »

Я использую CodeAssist-unofficial на моем телефоне Android для создания приложений, но кодистсист использует LIBAAPT2.SO в DILIBS DIR для компиляции ресурсов, и я изменяю из него, чтобы перемещать файл AAPT2 из активов в файл /данные /данные и сделать его исполняемым, используя код < /p>


private File getAapt2Binary() throws IOException {

java.io.File target = new java.io.File(

com.tyron.builder.BuildModule.getContext().getFilesDir(), "aapt2");

if (target.exists() && target.canExecute()) return target;

try (java.io.InputStream in = com.tyron.builder.BuildModule.getContext().getAssets().open("aapt2");

java.io.FileOutputStream out = new java.io.FileOutputStream(target)) {

org.apache.commons.io.IOUtils.copy(in, out);

}

if (!target.setExecutable(true, false))

throw new java.io.IOException("Cannot mark aapt2 as executable");

try {

java.lang.Runtime.getRuntime().exec("chmod 755 " + target.getAbsolutePath()).waitFor();

} catch (Exception ignore) {}

if (!target.canExecute())

throw new java.io.IOException("aapt2 still not executable");

return target;

}
< /code>
и запустить AAPT2 с помощью < /p>


private void runAapt2(List args, String task) throws CompilationFailedException {

File aapt2;

try {

aapt2 = getAapt2Binary();

} catch (IOException e) {

throw new CompilationFailedException("Unable to obtain aapt2 binary", e);

}

List cmd = new ArrayList();

cmd.add(aapt2.getAbsolutePath());

cmd.addAll(cmd);

getLogger().debug("Running AAPT2 " + task + ": " + cmd);

ProcessBuilder pb = new ProcessBuilder(cmd);

pb.redirectErrorStream(true);

clearLogs();

int exit;

try {

Process p = pb.start();

try (BufferedReader br = new BufferedReader(

new InputStreamReader(p.getInputStream(), Charset.defaultCharset()))) {

String line;

while ((line = br.readLine()) != null) {

log(LOG_LEVEL_ERROR, null, -1, line);

}

}

exit = p.waitFor();

} catch (IOException | InterruptedException e) {

throw new CompilationFailedException("AAPT2 " + task + " execution failed", e);

}

LogUtils.log(mDiagnostics, getLogger());

if (exit != 0) {

throw new CompilationFailedException("AAPT2 " + task + " failed (exit code " + exit + ")");

}

}
< /code>
Но я получил ошибку
`< /p>
com.tyron.builder.exception.compilationFailedException: AAPT2 Compil-Project выполнение не удалось < /p>
at com.tyron.builder.compiler.incremental.resource.IncrementalAapt2Task.runAapt2(IncrementalAapt2Task.java:276)

at com.tyron.builder.compiler.incremental.resource.IncrementalAapt2Task.compileProject(IncrementalAapt2Task.java:114)

at com.tyron.builder.compiler.incremental.resource.IncrementalAapt2Task.run(IncrementalAapt2Task.java:73)

at com.tyron.builder.compiler.BuilderImpl.build(BuilderImpl.java:75)

at com.tyron.builder.compiler.ProjectBuilder.build(ProjectBuilder.java:89)

at com.tyron.code.service.CompilerService.buildProject(CompilerService.java:218)

at com.tyron.code.service.CompilerService.lambda$compile$2$com-tyron-code-service-CompilerService(CompilerService.java:200)

at com.tyron.code.service.CompilerService$$ExternalSyntheticLambda1.run(D8$$SyntheticClass:0)

at com.tyron.completion.progress.ProgressManager.lambda$runAsync$0$com-tyron-completion-progress-ProgressManager(ProgressManager.java:56)

at com.tyron.completion.progress.ProgressManager$$ExternalSyntheticLambda1.run(D8$$SyntheticClass:0)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)

at java.lang.Thread.run(Thread.java:929)

вызвано: java.io.ioexception: невозможно запустить программу "/data/user/0/org.codeassist.unofficial/files/aapt2": ошибка = 13, разрешение отказано
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1050)

at com.tyron.builder.compiler.incremental.resource.IncrementalAapt2Task.runAapt2(IncrementalAapt2Task.java:266)

... 12 more
< /code>
вызван: java.io.ioexception: error = 13, разрешение отказано < /p>
at java.lang.UNIXProcess.forkAndExec(Native Method)

at java.lang.UNIXProcess.(UNIXProcess.java:133)

at java.lang.ProcessImpl.start(ProcessImpl.java:141)

at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)

... 13 more

`
Это моя репо, я работаю над https://github.com/wadamzmail/codeassist-unofficial
Я искал в Google и попросил ai, но я получил те же экзамены, как этот


Подробнее здесь: https://stackoverflow.com/questions/797 ... ion-denied
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»