Подтвердить что ты не робот

Библиотеки Android Jar

Как вы настраиваете проект, который может привести к созданию файла библиотеки jar, который можно использовать для Android? Я хочу создать пользовательскую библиотеку во всех проектах.

Несколько других вопросов:

  • Нужно ли его компилировать для конкретной версии Android-sdk?
  • Когда пакет андроидов скомпилирован против библиотеки jar, классы, необходимые для работы с кодом, скомпилированы с основным кодом в apk или включены все jar?
  • Любые заметные оптимизации или подводные камни, о которых мне нужно знать, с использованием флага вместо того, чтобы напрямую интегрировать код?
  • Нужно ли подписывать банку, как это нужно для apk?
4b9b3361

Ответ 1

Google просто выпустит новую версию SDK, которая обрабатывает общие библиотеки!

https://developer.android.com/tools/projects/projects-eclipse.html#SettingUpLibraryProject

ADT 0.9.7 (май 2010 г.)

Проекты библиотеки:
Плагин ADT теперь поддерживает использование библиотечных проектов во время разработки, способность, которая позволяет хранить общий доступ к Android код приложения и ресурсы в отдельный проект развития. Ты можешь затем обратитесь к библиотечному проекту из других Android-проектов, и время сборки, инструменты компилируют общий код и ресурсы в рамках зависимые приложения. Больше информация об этой функции доступный в разработке в Eclipse с документом ADT. Если вы не разработка в Eclipse, SDK Tools r6 предоставляет эквивалентную библиотеку поддержка проекта через конструкцию Antсистема.

Ответ 2

Нет ничего особенного в настройке вашего проекта, чтобы создать файл jar, который будет работать в приложении для Android. Просто создайте обычный проект Java в Eclipse.

  • Его вообще не нужно компилировать на Android. Вы можете включить любой файл jar, если он не ссылается на классы, которые не включены в Android. Просто включите свой файл jar в свой путь сборки ваших проектов Android в Eclipse, и он будет автоматически включен в ваш файл APK.

  • Не уверен, но я предполагаю, что все классы в файле jar будут включены в APK.

  • Я не думаю, что просто включение некоторых классов в jar vs. в проекте напрямую будет иметь какое-то значение в полученном APK.

Ответ 3

Я задал myselft тот же вопрос: могу ли я экспортировать и повторно использовать макет в Android. Я попробовал следующее: экспортировать проект с ресурсами XML в JAR файл, а затем попытаться получить доступ к макету через него R.layout. Конечно, это не сработало, так как R.layout.main был целым числом, таким же целым числом, которое было связано с единственным макетом (relative.xml), определенным в хост-проекте R.layout.

Android файлы SDK kompiles размещают XML файлы в виде ресурсов View, а XML файлы в включенном JAR файле не являются файлами xml-макетов, они не скомпилированы, а идентификатор не связан с ними в R.layout.

Если вы хотите экспортировать макет из своего проекта, вы должны экспортировать его как XML и импортировать его в новый проект как ресурс макета, а не как часть внешней библиотеки.

Если вы хотите повторно использовать макеты из JAR, вам нужно создать подкласс в представлении и создать макет из кода. Затем вы можете создать экземпляр и установить созданный экземпляр в виде представления активности или добавить экземпляр в представление своей деятельности.

Ответ 4

Эта работа для меня!!!. если вы хотите использовать файл .jar в своем приложении из проекта библиотеки, который использует такие ресурсы, как attrs.xml (и пусть другие, такие как макеты, строки и т.д.), которые генерируют R.java. вы должны в eclipse перейти к export->Java/Jar file-> и проверить Экспорт всех выходных папок для отмеченного projects -> Finish... это гарантирует, что во время выполнения ваше приложение, использующее эту банку, не генерирует исключение для отсутствующих кланов и ресурсов.

Конечно, включить банку в новый проект. project properties-> Java build path -> Libraries -> Add external jar ->, и все готово.

Надеюсь на эту помощь!

Ответ 5

чтобы создать файл jar, вы должны использовать опцию Экспортировать Eclipse. В диалоговом окне экспорта выберите java, а JOP - подпроцесс. Затем отображается мастер, где вам нужно сделать некоторые выборы. Вам нужно указать место, где будет храниться файл jar.

Ошибка, которую я сделал в первый раз, когда я создал файл jar, должен был включить манифест Android. При добавлении созданного файла jar я получил конфликт с манифестом с двойным андроидом.

Ответ 6

Вы можете использовать настраиваемый метод для динамического доступа к файлу R, например, ссылка ниже.

Упаковывать файлы ресурсов Android в распространяемый файл Jar

public static int getResourseIdByName(String packageName, String className, String name) {
   Class r = null;
   int id = 0;
try {
    r = Class.forName(packageName + ".R");

    Class[] classes = r.getClasses();
    Class desireClass = null;

    for (int i = 0; i < classes.length; i++) {
        if(classes[i].getName().split("\\$")[1].equals(className)) {
            desireClass = classes[i];

            break;
        }
    }

    if(desireClass != null)
        id = desireClass.getField(name).getInt(desireClass);
} catch (ClassNotFoundException e) {
    e.printStackTrace();
} catch (IllegalArgumentException e) {
    e.printStackTrace();
} catch (SecurityException e) {
    e.printStackTrace();
} catch (IllegalAccessException e) {
    e.printStackTrace();
} catch (NoSuchFieldException e) {
    e.printStackTrace();
}

return id;
}

Ответ 7

Если вы посмотрите файл android.jar в файле platform/android-X.X/android.jar, он включает в себя элементы XML-макетов, поэтому вы также сможете их создать. Я просто не уверен точно, как вы это делаете и как вы ссылаетесь на них в другом проекте.