Как конвертировать AAR в JAR
ситуация:
Я намерен использовать библиотеку Java, и у меня есть только AAR файл из репозитория Maven, но мне нужен JAR.
Предыстория:
Я попытался скомпилировать библиотеку, но ее структура Gradle была нестабильной. Поэтому я попросил скомпилированный файл jar, и его разработчик передал мне файл aar из какого-то репозитория Maven (разработчик не смог скомпилировать его собственный проект.)
Конфигурация Gradle была беспорядочной, она зависела от нескольких библиотек, и Gradle бросил некоторые исключения.
Я пытался использовать его в своей идее IDE, но он не мог его видеть. Проект библиотеки должен быть скомпилирован в файл jar, верно?
вопрос:
что я должен сделать, чтобы конвертировать этот файл AAR в файл JAR?
7 ответов:
The AAR файл состоит из JAR файл и некоторые файлы ресурсов (это в основном стандартный zip-файл с пользовательским расширением файла). Вот шаги для преобразования:
- извлеките файл AAR с помощью стандартного zip-извлечения (переименуйте его в *.молнии чтобы было проще)
- найти классы.банку файл в извлеченных файлах
- переименовать его как вам как и использовать этот файл jar в вашем проекте
.aar-это стандартный zip-архив, тот же самый, который используется .сосуд. Просто измените расширение и, предполагая, что оно не повреждено или что-то еще, все должно быть в порядке.
Если вам нужно, вы можете извлечь его в файловую систему и затем упаковать его в банку.
1) Rename it to .jar 2) Extract: jar xf filename.jar 3) Repackage: jar cf output.jar input-file(s)
Как многие другие люди указали, просто извлечение .банку из-под .файл aar не совсем сокращает его, поскольку ресурсы могут отсутствовать.
вот шаги, которые работали для меня (контекст Android, ваш пробег может отличаться, если у вас есть другие цели):
- переименовать .ААР файл к.застегнуть и извлечь.
- извлеченная папка-это проект ADT, который вы можете импортировать в Eclipse с некоторыми незначительными изменениями (см. ниже)!
- в извлеченную папку переименовать файл классы.банку к тому, что вам нравится (в этом примере myProjectLib.jar) и переместите его в папку lib в извлеченной папке.
- теперь для того, чтобы Eclipse принял его, вам нужно поместить два файла в корень извлеченной папки:
- .проект
- .путь к классу
- чтобы сделать это, создайте новый проект Android dummy в Eclipse и скопируйте файлы или скопируйте из существующий проект Android.
- открыть .файл проекта и найдите тег имени XML и замените его содержимое на myProjectLib (или то, что вы назвали своим файлом jar выше) и сохраните.
- теперь в Eclipse вы можете File -> New -> Project - > Android Project из существующего источника.. и укажите на содержимое извлеченной папки.
- после импорта щелкните правой кнопкой мыши на вновь созданном проекте, выберите Свойства - > Android, и проверить Библиотека.
- в вашем основном проекте, для которого вы хотите использовать библиотеку, также перейдите к Свойства - > Android и добавить недавно добавленный myProjectLib в список зависимостей.
для тех, кто хочет сделать это автоматически, я написал небольшой двухстрочный скрипт bash, который делает следующие две вещи:
- ищет все *.AAR файлы и извлекает классы.баночка от них
переименовывает извлечены уроки.jar должен быть похож на aar, но с новым расширением
find . -name '*.aar' -exec sh -c 'unzip -d `dirname {}` {} classes.jar' \; find . -name '*.aar' -exec sh -c 'mv `dirname {}`/classes.jar `echo {} | sed s/aar/jar/g`' \;вот именно!
The 'aar' bundle is the binary distribution of an Android Library Project. .aar file consists a JAR file and some resource files. You can convert it as .jar file using this steps 1) Copy the .aar file in a separate folder and Rename the .aar file to .zip file using any winrar or zip Extractor software. 2) Now you will get a .zip file. Right click on the .zip file and select "Extract files". Will get a folder which contains "classes.jar, resource, manifest, R.java, proguard(optional), libs(optional), assets(optional)". 3) Rename the classes.jar file as yourjarfilename.jar and use this in your project.Примечание: Если вы хотите сделать только .jar-файл из вашего .файл aar использует выше способом. Предположим, если вы хотите включить манифест.xml и ресурсы с вашим .jar-файл означает вы можете просто щелкните правой кнопкой мыши на .AAR-файл и сохраните его как .jar-файл напрямую, вместо того, чтобы сохранение его в качестве .застежка-молния. Для просмотра .jar-файл, который вы извлекли, скачать JD-GUI (Java Decompiler). Затем перетащите ваш .jar-файл в этот JD_GUI, вы можете увидеть .файл класса в удобочитаемых форматах, таких как a .Java-файл.
ресурсов .ААР-проекты
находим классов.jar-файл внутри .файл aar довольно тривиален. Однако такой подход не работает, если таковой имеется .aar-проект определил некоторые ресурсы (пример: R. layout.xyz)
- deaar от CommonsGuy помог мне получить действительный ADT-дружественный проект из an .ААР-файл. в моем случае я обратился подвыборка-масштаб-изображение-вид. Мне потребовалось около час, чтобы настроить ruby на моем компьютере.
другой подход использует android-maven-плагин для Eclipse / ADT как CommonsGuy пишет в своем блоге.
еще один подход может быть, просто копирую весь нужный проект как источник из git и импортировать его как "существующий проект Android"
Android Studio (версия: 1.3.2) позволяет легко получить доступ .баночка внутри А.ААР.
бонус: он автоматически декомпилирует классы!
просто выполните следующие действия:
File > New > New Module > Import .JAR/.AAR Packageимпортировать вы .aar как модульдобавить вновь созданный модуль в качестве зависимости от вашего основного проекта (не уверен, если это необходимо)
Правой Кнопкой Мыши на "классы.jar", как показано в захвате ниже, и нажмите кнопку "Показать в проводнике". Вот твой .сосуд.



Comments