Как выполнить NDK/Clang в Android 11 с использованием Java для компиляции кода C++ в среде приложения?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как выполнить NDK/Clang в Android 11 с использованием Java для компиляции кода C++ в среде приложения?

Сообщение Anonymous »

Я работаю над приложением для Android, которому необходимо скомпилировать код C++ с использованием NDK и Clang (linux). В Android 11 я не могу запустить Clang непосредственно из внутренней памяти из-за ограничений хранения и выполнения. Несмотря на то, что двоичные файлы NDK и Clang размещены во внутренней памяти, при попытке их выполнения я получаю ошибки разрешений.
Сейчас я пытаюсь использовать ProcessBuilder для выполнения Clang следующим образом:

Код: Выделить всё

ProcessBuilder processBuilder = new ProcessBuilder("/data/data//files/clang", ".cpp", "-o", "");
processBuilder.directory(new File("/data/data//files/"));
processBuilder.start();
Однако я продолжаю сталкиваться с проблемами с разрешениями.
Каждый раз ошибка выглядит следующим образом:

Код: Выделить всё

/system/bin/sh: ./clang++: can't execute: Permission denied
Я хотел бы знать:
  • Как я могу создать собственную среду с использованием Java в своем приложении выполнять Clang и компилировать файлы C++?
  • Есть ли способ обойти ограничения на выполнение двоичных файлов во внутренней памяти на Android 11?
  • Поможет ли использование chroot или аналогичной среды внутри моего приложения решить эту проблему, и как я могу настроить ее, не требуя root-доступа?
  • Существуют ли какие-либо API-интерфейсы Android или обходные пути для безопасного вызова Clang или других собственных двоичных файлов в частном каталоге приложения (/data/data//files/)?< /p>
Есть предложения или альтернативные подходы для достижения этой цели в Android 11+?

Подробнее здесь: https://stackoverflow.com/questions/790 ... within-app
Ответить

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

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

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

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

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