Почему Runtime.getRuntime().exec() выдает исключение как Нет такого файла или каталога

Я построил iperf после его загрузки. А затем я отправил исполняемый файл iperf, созданный в проекте Android, например app/src/main/jniLibs (включая arm64-v8a, armeabi-v7a, x86 и x86_64). Я попытался переименовать этот исполняемый файл как «libiperf.so». Я записал следующие коды в событии click.

String[] path = {getApplicationInfo().nativeLibraryDir + "/libiperf.so", "-v"};
process = Runtime.getRuntime().exec(path); 

Но Android Studio выдает исключение, например Невозможно запустить программу /data/app/com.example.iperf-RP_dMVQlcYeU-n_xznRvhQ==/lib/x86/libiperf.so: error=2, для меня нет такого файла или каталога.

Есть странная вещь. Если я посмотрю папку /data/app/package**/lib/x86 через Device File Explorer эмулятора в Android Studio, в этой папке нет файла. У моего настоящего телефона Samsung такая же проблема. Еще более странно то, что файл apk, созданный Android Studio, имеет файл libiperf.so для запуска.

Я не могу решить эту ошибку. Помогите пожалуйста мне. Заранее спасибо.


person Dennis    schedule 24.06.2021    source источник
comment
Вам нужно будет вложить файлы в соответствии с stackoverflow.com /вопросы/17340240/. В настоящее время различными целями сборки являются arm64-v8a, armeabi-v7a, x86 и x86_64.   -  person msbit    schedule 25.06.2021
comment
Спасибо за ваш комментарий, но, конечно, хотя я поместил arm64-v8a, armeabi-v7a, x86, x86_64 в app/src/main/jniLibs, я получил сообщение об ошибке, как выше   -  person Dennis    schedule 26.06.2021


Ответы (1)


Добавьте android:extractNativeLibs=true в свой манифест.

person Akshay Chougule    schedule 19.07.2021