2015-10-15 3 views
0

Я разрабатываю проект библиотеки Android. В Eclipse, когда я хочу, чтобы экспортировать его в виде файла jar:Android Studio экспортирует проект библиотеки Android как jar

  1. правой не нажмут на Проект-> Export-> Java-> Jar файл
  2. Я выбираю вручную некоторые пакеты из src Вот и все (не res и т. д.!) - это требования моей библиотеки ...
  3. В чекбоксах я проверяю: «Экспорт сгенерированных файлов классов и ресурсов». Вот и все.

Теперь я мигрировали в Android Studio, поэтому после некоторых SO обсуждения я придумал это под gradle.build:

task clearJar(type: Delete) { 
    delete 'build/outputs/mysdk.jar' 
} 

task makeJar(type: Copy) { 
    from('build/intermediates/bundles/release/') 
    into('build/outputs/') 
    include('classes.jar') 
    rename ('classes.jar', 'mysdk.jar') 
} 

makeJar.dependsOn(clearJar, build) 

Когда я затем интегрировать Jar в некоторых Android App вещей не работает указывая что-то пошло не так с процессом экспорта Jar (проект библиотеки свободен от ошибок/предупреждений и т. д.).

Как добиться аналогичного поведения экспорта в банку eclipse в Android Studio?

Спасибо,

+0

Вы можете экспортировать проект библиотеки как Jar, только если он не имеет каких-либо связанный ресурс. В вашем проекте библиотеки содержатся ресурсы Android (строки, макеты и т. Д.)? – rciovati

+0

Да действительно много ... Мы делаем полный SDK – michael

+0

Так что вы не можете просто экспортировать банку, но вам нужно распространять '.aar'. – rciovati

ответ

1

Вы не хотите, чтобы произвести jar файл в папку res/ будет отсутствовать и все, что ссылается на файл R в код потерпит неудачу при выполнении. Это связано с тем, что формат jar не поддерживает андроид res. Вместо этого вы хотите, чтобы ваша сборка была нацелена на формат aar. Это просто, используя gradle. Вместо применения плагина приложения (apply plugin: 'com.android.application') просто примените библиотечный плагин (apply plugin: 'com.android.library').

Затем gradle build будет производить файл aar, который будет содержать все ваши ресурсы.

Разработчики, которые все еще используют eclipse, будут знакомы с тем, как импортировать файлы aar, потому что это стандарт Android. Если они еще не научились, есть много сообщений SO, которые помогут.

Разработчики, которые используют Gradle или Maven не будет никаких проблем, потребляющих ваш SDK

Смежные вопросы