Ошибка «Использование зарезервированного имени файла или каталога« lib »» при попытке собрать комплект приложений Android - PullRequest
0 голосов
/ 28 марта 2019

Я пытаюсь создать пакет приложений, но получаю следующую ошибку:

File 'root/lib/x86_64-MacOSX-gpp/jni/libjunixsocket-native-2.0.4.jnilib' uses reserved file or directory name 'lib'.

Что касается того, что я видел из аналогичных вопросов, эта проблема обычно решается путем жонглирования зависимостей или файлов в структуре проекта, но в этом случае, похоже, это указывает на нативную библиотеку, участвующую в архитектуре приложения, если я не ошибаюсь. Есть идеи как это решить?

1 Ответ

1 голос
/ 29 марта 2019

Похоже, вы добавляете зависимость как jar вместо aar.

aar содержит информацию о том, какие файлы следует рассматривать как ресурсы Android, нативные библиотеки и т. Д. В приложении.A jar - это просто список файлов без концепции Android.Поскольку jar, от которого вы зависите, содержит каталог lib, файлы обычно считаются собственными библиотеками, но поскольку файлы приходят из jar, а не aar, система сборки предупреждает, что вряд либыть нативной библиотекой и может иметь непредвиденные последствия во время выполнения.

Попробуйте упаковать эту библиотеку как .aar вместо .jar.См. Эту документацию: https://developer.android.com/studio/projects/android-library

Редактировать: обратите внимание, что этот файл не мог быть загружен платформой Android, если он был включен, как есть в APK, поэтому даже если предыдущие системы сборки позволяли вам что-либо помещатьв APK пакет приложений для Android более ограничен, чтобы гарантировать, что вы случайно не поместите ненужные файлы, которые излишне увеличат размер вашего приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...