Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
dubok79
324 / 122 / 10
Регистрация: 01.11.2012
Сообщений: 586
#1

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

19.04.2013, 14:06. Просмотров 1518. Ответов 16
Метки нет (Все метки)

Сделал на основе примера проект для выбора цвета. В нем класс наследуемый от 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...подскажите как правильно. Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.04.2013, 14:06
Ответы с готовыми решениями:

Как правильно присвоить переменным данные для использования с другом методе?
Привет всем! Есть такая проблема... есть push уведомления, и когда приходит...

Как правильно обновить данные для списка при изменении данных в другом фрагменте?
Здравствуйте. Подскажите как правильно обновить данные для адаптера списка в...

Как правильно создать аккаунт разработчика для публикации проекта?
Можете кинуть норм материал по созданию акаунта гугл разработчика и...

как правильно делать версии своего проекта в Viisual Studio
Суть в том, что по мере написания программы требуется где то хранить архивные...

как создать сборку для старого проекта и использовать ее в другом проекте?
как создать сборку для старого проекта и использовать ее в другом проекте? ...

16
c4sp3r
0x5B4C322291BD52AE
93 / 93 / 0
Регистрация: 04.03.2013
Сообщений: 295
19.04.2013, 15:26 #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
1
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
19.04.2013, 15:28 #3
если нужна либа с ресурсами то это делается так:

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

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

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

http://developer.android.com/tools/projects/index.html#LibraryProjects
или посмотреть сэмплы в SDK.
0
dubok79
324 / 122 / 10
Регистрация: 01.11.2012
Сообщений: 586
19.04.2013, 15:53  [ТС] #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 разные выставлены были....
0
c4sp3r
0x5B4C322291BD52AE
93 / 93 / 0
Регистрация: 04.03.2013
Сообщений: 295
19.04.2013, 15:54 #11
dubok79, нельзя две сразу android-support-v4.jar использовать удали одну и еще они у тебя не совпадают по версиям какая-то из них старая. Думаю будет лучше если удалишь из библиотеки меньше гемора в дальнейшем.
0
dubok79
324 / 122 / 10
Регистрация: 01.11.2012
Сообщений: 586
19.04.2013, 16:18  [ТС] #12
Фиг там...все та же ошибка, что и с jar файлом поспешил с результатом

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

Не сохраняются значения в свойстве своего UserControl в режиме конструктора форм, когда я его использую в другом проекте
Ситуация: я создал свой контрол, который содержит TextBox и добавил несколько...

Определение сроков разработки проекта Как это делать правильно?
Помогите разобраться, как правильно определять сроки разработки проектов....

Возможно ли использовать функцию, объявленную в *.сср одного проекта, в другом проекте?
допустим в решении задействованы 3 проекта возможно ли использовать функцию,...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru