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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
#1

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

19.04.2013, 14:06. Просмотров 1388. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как правильно делать из своего проекта jar для использования в другом проекте (Программирование Android):

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

Как правильно создать аккаунт разработчика для публикации проекта? - Программирование Android
Можете кинуть норм материал по созданию акаунта гугл разработчика и монетизации? Из личного опыта, так сказать... Добавлено через 49...

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

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

как создать сборку для старого проекта и использовать ее в другом проекте? - C#
как создать сборку для старого проекта и использовать ее в другом проекте? Хочу использовать некоторые классы в новом проекте, хочу...

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

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

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

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

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

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

Добавлено через 19 минут
Заработало, но пришлось воспользоваться методом getIdentifier
0
c4sp3r
0x5B4C322291BD52AE
92 / 92 / 5
Регистрация: 04.03.2013
Сообщений: 295
19.04.2013, 16:18 #13
Цитата Сообщение от dubok79 Посмотреть сообщение
та же ошибка
Не может быть если ты удалил одну из них! Посмотри dependency list внимательно.
0
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
19.04.2013, 16:25  [ТС] #14
Цитата Сообщение от c4sp3r Посмотреть сообщение
Не может быть если ты удалил одну из них! Посмотри dependency list внимательно.
Заработало, но пришлось воспользоваться методом getIdentifier
0
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
19.04.2013, 16:31 #15
никогда не возникало с этим проблем, лучше разберись что ты делаешь не так вместо того чтобы писать костыли.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.04.2013, 16:31
Привет! Вот еще темы с ответами:

Определение сроков разработки проекта Как это делать правильно? - Программирование
Помогите разобраться, как правильно определять сроки разработки проектов. Исходя из чего ставяться человекочасы(Или любые другие единицы...

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

Защита проекта VBA от использования на другом компьютере или копирования - VBA
Есть файл Excel-я, как можно защитить её от использования на другом компьютере или копирования? То бишь как в модуле задать функцию,...

Как достать переменную для использования в другом макросе? - VBA
Вот код Sub Zadanie6() Dim strArr() As String, intVal As Integer, rngCells As Range, intCnt As Integer, intI As Integer, intA...


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

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
19.04.2013, 16:31
Ответ Создать тему
Опции темы

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