Форум программистов, компьютерный форум CyberForum.ru

Как правильно делать из своего проекта jar для использования в другом проекте - Android

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
dubok79
 Аватар для dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
19.04.2013, 14:06     Как правильно делать из своего проекта jar для использования в другом проекте #1
Сделал на основе примера проект для выбора цвета. В нем класс наследуемый от Dialog. Еще в проекте есть layout с разметкой для dialog и strings.xml. Больше ничего нет. Проект создавал как Android Application Project. Потом на нем нажал Export и выбрал JAR. Убрал галочку с файла манифеста и нажал finish. Полученный jar скопировал в папку libs другого проекта. Попытался вызвать диалог, но получил ошибку
Кликните здесь для просмотра всего текста

04-19 14:04:27.562: E/AndroidRuntime(17713): FATAL EXCEPTION: main
04-19 14:04:27.562: E/AndroidRuntime(17713): android.content.res.Resources$NotFoundException: File res/drawable/bg_2_1x1.png from xml type layout resource ID #0x7f020000
04-19 14:04:27.562: E/AndroidRuntime(17713): at android.content.res.Resources.loadXmlResourceParser(Resources.java)
04-19 14:04:27.562: E/AndroidRuntime(17713): at android.content.res.Resources.loadXmlResourceParser(Resources.java)
04-19 14:04:27.562: E/AndroidRuntime(17713): at android.content.res.Resources.getLayout(Resources.java)
04-19 14:04:27.562: E/AndroidRuntime(17713): at android.view.LayoutInflater.inflate(LayoutInflater.java)
04-19 14:04:27.562: E/AndroidRuntime(17713): at android.view.LayoutInflater.inflate(LayoutInflater.java)
04-19 14:04:27.562: E/AndroidRuntime(17713): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java)
04-19 14:04:27.562: E/AndroidRuntime(17713): at android.app.Dialog.setContentView(Dialog.java)
04-19 14:04:27.562: E/AndroidRuntime(17713): at ru.alexeydubinin.colorpicker.ColorPickerDialog.onCreate(ColorPickerDialog.java:28)
04-19 14:04:27.562: E/AndroidRuntime(17713): at android.app.Dialog.dispatchOnCreate(Dialog.java)
04-19 14:04:27.562: E/AndroidRuntime(17713): at android.app.Dialog.show(Dialog.java)
04-19 14:04:27.562: E/AndroidRuntime(17713): at ru.alexeydubinin.colorpicker.ColorPickerDialog.show(ColorPickerDialog.java:49)
04-19 14:04:27.562: E/AndroidRuntime(17713): at ru.alexeydubinin.lineyka.PreferencesActivity_1x1.onClick(PreferencesActivity_1x1.java:325)
04-19 14:04:27.562: E/AndroidRuntime(17713): at android.view.View.performClick(View.java)
04-19 14:04:27.562: E/AndroidRuntime(17713): at android.view.View$PerformClick.run(View.java)
04-19 14:04:27.562: E/AndroidRuntime(17713): at android.os.Handler.handleCallback(Handler.java)
04-19 14:04:27.562: E/AndroidRuntime(17713): at android.os.Handler.dispatchMessage(Handler.java)
04-19 14:04:27.562: E/AndroidRuntime(17713): at android.os.Looper.loop(Looper.java)
04-19 14:04:27.562: E/AndroidRuntime(17713): at android.app.ActivityThread.main(ActivityThread.java)
04-19 14:04:27.562: E/AndroidRuntime(17713): at java.lang.reflect.Method.invokeNative(Native Method)
04-19 14:04:27.562: E/AndroidRuntime(17713): at java.lang.reflect.Method.invoke(Method.java:511)
04-19 14:04:27.562: E/AndroidRuntime(17713): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java)
04-19 14:04:27.562: E/AndroidRuntime(17713): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java)
04-19 14:04:27.562: E/AndroidRuntime(17713): at dalvik.system.NativeStart.main(Native Method)
04-19 14:04:27.562: E/AndroidRuntime(17713): Caused by: java.io.FileNotFoundException: Corrupt XML binary file
04-19 14:04:27.562: E/AndroidRuntime(17713): at android.content.res.AssetManager.openXmlAssetNative(Native Method)
04-19 14:04:27.562: E/AndroidRuntime(17713): at android.content.res.AssetManager.openXmlBlockAsset(AssetManager.java)
04-19 14:04:27.562: E/AndroidRuntime(17713): ... 23 more


Что то я не понимаю в чем ошибка. Какие то ресурсы не найдены... Наверное я как то не так использую этот jar...подскажите как правильно. Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.04.2013, 14:06     Как правильно делать из своего проекта jar для использования в другом проекте
Посмотрите здесь:

Android Создание своего дизайна для приложения
Для чего папка trunk в проекте? Android
Как правильно обновить данные для списка при изменении данных в другом фрагменте? Android
Android Как правильно присвоить переменным данные для использования с другом методе?
Android Как работает библиотека в андроид студио, как ее подключить, чтобы она заработала в проекте?
Как правильно построить адаптер для показа данных из базы в ListView Android
Как сделать клиент для видео хостинга, у которого нет своего API? Android
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
c4sp3r
0x5B4C322291BD52AE
 Аватар для c4sp3r
91 / 91 / 5
Регистрация: 04.03.2013
Сообщений: 295
19.04.2013, 15:26     Как правильно делать из своего проекта jar для использования в другом проекте #2
dubok79,

Why is ActionBarSherlock a library project whereas the original compatibility library is only a .jar?

The custom action bar implementation within ActionBarSherlock relies on styles, themes, layouts, and drawables in order to display properly. Due to the limitations of Android and .jar files, this currently can not be accomplished any other way.

Из FAQ по ActionBarSherlock.
А теперь вкратце, это значит если твоя библиотека в jar то она не должна содержать styles, themes, layouts, и drawables. Либо нужно использовать рефлексию:
http://stackoverflow.com/questions/7...n-external-jar
V0v1k
1157 / 981 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
19.04.2013, 15:28     Как правильно делать из своего проекта jar для использования в другом проекте #3
если нужна либа с ресурсами то это делается так:

клик правой клавишей по проекту -> Properties -> Android -> и ставим галочку Is Library
чтобы подключить заходим в проперти проекта к которому подключаем -> Android -> Add -> в списке выбираем нашу библиотеку.
dubok79
 Аватар для dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
19.04.2013, 15:38  [ТС]     Как правильно делать из своего проекта jar для использования в другом проекте #4
c4sp3r, спасибо, сейчас попробую использовать getIdentifier()

Добавлено через 1 минуту
Цитата Сообщение от V0v1k Посмотреть сообщение
клик правой клавишей по проекту -> Properties -> Android -> и ставим галочку Is Library
чтобы подключить заходим в проперти проекта к которому подключаем -> Android -> Add -> в списке выбираем нашу библиотеку.
Вот именно так и пытался сделать, но не получилось. Может из-за того, что просто скопировал jar-файл? МОжет его надо как то приконнектить?
c4sp3r
0x5B4C322291BD52AE
 Аватар для c4sp3r
91 / 91 / 5
Регистрация: 04.03.2013
Сообщений: 295
19.04.2013, 15:42     Как правильно делать из своего проекта jar для использования в другом проекте #5
dubok79, я тебе бы посоветовал сделать как говорит V0v1k не надо использовать jar и заморачиваться с рефлексией.
V0v1k
1157 / 981 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
19.04.2013, 15:43     Как правильно делать из своего проекта jar для использования в другом проекте #6
не нужен вам jar и не нужно ничего копировать, просто сделайте только то, что я написал. если вы пренципиально хотите jar, то, как написано по линку выше, нужно отдельно прикреплять все ваши ресурсы в целевой проект.
c4sp3r
0x5B4C322291BD52AE
 Аватар для c4sp3r
91 / 91 / 5
Регистрация: 04.03.2013
Сообщений: 295
19.04.2013, 15:43     Как правильно делать из своего проекта jar для использования в другом проекте #7
Цитата Сообщение от dubok79 Посмотреть сообщение
Вот именно так и пытался сделать, но не получилось. Может из-за того, что просто скопировал jar-файл? МОжет его надо как то приконнектить?
Jar не нужен если ты только не хочешь подключить какуй-нибудь левую библиотеку.
dubok79
 Аватар для dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
19.04.2013, 15:48  [ТС]     Как правильно делать из своего проекта jar для использования в другом проекте #8
Цитата Сообщение от c4sp3r Посмотреть сообщение
dubok79, я тебе бы посоветовал сделать как говорит V0v1k не надо использовать jar и заморачиваться с рефлексией.
Я сам бы этого очень хотел, но не получается ведь

Добавлено через 4 минуты
Прошу прощения, все получилось...не правильно делал. Спасибо вам!!!
c4sp3r
0x5B4C322291BD52AE
 Аватар для c4sp3r
91 / 91 / 5
Регистрация: 04.03.2013
Сообщений: 295
19.04.2013, 15:51     Как правильно делать из своего проекта jar для использования в другом проекте #9
dubok79, думаю тебе стоит почитать литературку по созданию библиотек в Android или статейку и тогда все заработает.

http://developer.android.com/tools/p...ibraryProjects
или посмотреть сэмплы в SDK.
dubok79
 Аватар для dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
19.04.2013, 15:53  [ТС]     Как правильно делать из своего проекта jar для использования в другом проекте #10
Вот что мне написалось: чешу репу
Кликните здесь для просмотра всего текста
[2013-04-19 15:50:48 - lineyka] Found 2 versions of android-support-v4.jar in the dependency list,
[2013-04-19 15:50:48 - lineyka] but not all the versions are identical (check is based on SHA-1 only at this time).
[2013-04-19 15:50:48 - lineyka] All versions of the libraries must be the same at this time.
[2013-04-19 15:50:48 - lineyka] Versions found are:
[2013-04-19 15:50:48 - lineyka] Path: N:\Programming\WORKSPACE\ColorPicker\libs\android-support-v4.jar
[2013-04-19 15:50:48 - lineyka] Length: 385685
[2013-04-19 15:50:48 - lineyka] SHA-1: 48c94ae70fa65718b382098237806a5909bb096e
[2013-04-19 15:50:48 - lineyka] Path: N:\Programming\WORKSPACE\lineyka\libs\android-support-v4.jar
[2013-04-19 15:50:48 - lineyka] Length: 349252
[2013-04-19 15:50:48 - lineyka] SHA-1: 612846c9857077a039b533718f72db3bc041d389
[2013-04-19 15:50:48 - lineyka] Jar mismatch! Fix your dependencies


тьфу черт...версии Android SDK разные выставлены были....
c4sp3r
0x5B4C322291BD52AE
 Аватар для c4sp3r
91 / 91 / 5
Регистрация: 04.03.2013
Сообщений: 295
19.04.2013, 15:54     Как правильно делать из своего проекта jar для использования в другом проекте #11
dubok79, нельзя две сразу android-support-v4.jar использовать удали одну и еще они у тебя не совпадают по версиям какая-то из них старая. Думаю будет лучше если удалишь из библиотеки меньше гемора в дальнейшем.
dubok79
 Аватар для dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
19.04.2013, 16:18  [ТС]     Как правильно делать из своего проекта jar для использования в другом проекте #12
Фиг там...все та же ошибка, что и с jar файлом поспешил с результатом

Добавлено через 19 минут
Заработало, но пришлось воспользоваться методом getIdentifier
c4sp3r
0x5B4C322291BD52AE
 Аватар для c4sp3r
91 / 91 / 5
Регистрация: 04.03.2013
Сообщений: 295
19.04.2013, 16:18     Как правильно делать из своего проекта jar для использования в другом проекте #13
Цитата Сообщение от dubok79 Посмотреть сообщение
та же ошибка
Не может быть если ты удалил одну из них! Посмотри dependency list внимательно.
dubok79
 Аватар для dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
19.04.2013, 16:25  [ТС]     Как правильно делать из своего проекта jar для использования в другом проекте #14
Цитата Сообщение от c4sp3r Посмотреть сообщение
Не может быть если ты удалил одну из них! Посмотри dependency list внимательно.
Заработало, но пришлось воспользоваться методом getIdentifier
V0v1k
1157 / 981 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
19.04.2013, 16:31     Как правильно делать из своего проекта jar для использования в другом проекте #15
никогда не возникало с этим проблем, лучше разберись что ты делаешь не так вместо того чтобы писать костыли.
YAUHEN
146 / 128 / 6
Регистрация: 29.07.2008
Сообщений: 506
20.04.2013, 10:16     Как правильно делать из своего проекта jar для использования в другом проекте #16
ошибка известная.
у тебя в либрари проекте и в зависящем от него в папке libs висят джарки android-support-v4.jar. Ругается потому что у тебя джарки разных версий. Просто скопируй в каждый из проектов последнюю версию (или хотя бы что бы версия была одинаковая хотя советую последнюю потому как там ViewPager вроде как неплохо заимпрувили). Последняя нынче 12(зайди в сдк менеджер и обновись).
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.04.2013, 12:30     Как правильно делать из своего проекта jar для использования в другом проекте
Еще ссылки по теме:

Android Как обратиться к классу вшитому в jar архив
Как правильно сделать PRO версию проекта Android
Как правильно создать аккаунт разработчика для публикации проекта? Android
Смена языка для своего приложения Android
Android Как открыть jar файл в Android Studio?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
dubok79
 Аватар для dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
20.04.2013, 12:30  [ТС]     Как правильно делать из своего проекта jar для использования в другом проекте #17
Цитата Сообщение от YAUHEN Посмотреть сообщение
ошибка известная.
у тебя в либрари проекте и в зависящем от него в папке libs висят джарки android-support-v4.jar. Ругается потому что у тебя джарки разных версий. Просто скопируй в каждый из проектов последнюю версию (или хотя бы что бы версия была одинаковая хотя советую последнюю потому как там ViewPager вроде как неплохо заимпрувили). Последняя нынче 12(зайди в сдк менеджер и обновись).
Копировать не стал. Просто в Preferences/Android установил последнюю версию SDK 4.2 и ошибка сразу пропала, наверное подмена происходит автоматом. Правда сначала копировал, но ничего не получилось...не дало просто скопировать.
Yandex
Объявления
20.04.2013, 12:30     Как правильно делать из своего проекта jar для использования в другом проекте
Ответ Создать тему
Опции темы

Текущее время: 03:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru