Настройте eclipse для использования моего собственного Android SDK (framework.jar)

Я сделал собственный framework.jar для своего устройства. Эта новая структура включает в себя новый API, который я хотел бы использовать в своих приложениях. К сожалению, помимо того, что я включил свой собственный framework.jar в путь сборки java, eclipse не увидел мой новый API и выдал ошибки времени компиляции. Как настроить eclipse для использования моего пользовательского framework.jar вместо jar в Android SDK?

[РЕДАКТИРОВАТЬ]

Основываясь на ответе @Yuri и некоторых других идеях, я создал инструмент (на самом деле это сценарий оболочки) для создания новой платформы в Android SDK и объединения с ней файлов jar. Он доступен на форумах XDA для загрузки, а также инструкции по использованию: http://forum.xda-developers.com/showthread.php?t=2619775


person Plinio.Santos    schedule 06.02.2013    source источник


Ответы (3)


Чтобы собрать SDK, вы должны выполнить следующие команды:

make update-api
make sdk

Поскольку API Android был изменен, команда make update-api добавляет новый API. Команда make sdk создает SDK в папке out.

Затем, чтобы начать разработку приложений в Eclipse с использованием нового SDK, вы должны добавить этот новый SDK. Есть 2 возможности сделать это. Первый из книги "Встроенный Android". Просто скопирую сюда:

Предполагая, что вы уже настроили Eclipse для разработки под Android, следуя инструкциям на странице http://developer.android.com, вам нужно будет выполнить два дополнительных шага, чтобы использовать только что созданный SDK. Во-первых, вам нужно сообщить Eclipse расположение нового SDK. Для этого перейдите в «Окно» → «Настройки» → «Android», введите путь к новому SDK в поле «Расположение SDK» и нажмите «ОК». Кроме того, по причинам, которые не совсем ясны автору на момент написания этой статьи, вам также необходимо перейти в «Окно» → «Диспетчер Android SDK», отменить выбор всех элементов, которые могут быть выбраны, кроме первых двух в разделе « Инструменты» и нажмите «Установить 2 пакета...». После этого вы сможете создавать новые проекты с использованием нового SDK и получать доступ к любым новым API, которые вы предоставляете в нем. Если вы не сделаете этот второй шаг, вы сможете создавать новые проекты Android, но ни один из них не будет правильно разрешать библиотеки Java и, следовательно, никогда не будет собираться.

Что касается второго, то вот оно:

  1. Найдите новую сборку sdk zip (для Linux ее можно найти здесь out/host/linux-x86/sdk/)
  2. Разархивируйте этот пак в папку
  3. Внутри этой папки вы можете найти каталог, который называется platforms/android-2.3.3
  4. Переименуйте папку android-2.3.3 в <your_name>
  5. Скопируйте эту папку в следующее место установки вашего SDK Manager: android-sdk-linux/platforms
  6. Найдите внутри этой папки файл build.prop и присвойте свойству ro.build.version.sdk любое отрицательное число: ro.build.version.sdk=-10
  7. Теперь запустите SDK Manager, и вы заметите, что ваш новый SDK добавлен. Просто создайте новый проект Eclipse и выберите этот SDK в качестве цели.
person Yury    schedule 07.02.2013
comment
внутри out/host/linux-x86/ нет папки sdk/, есть только bin/, framework/, lib/, obj/ и usr/ - person Plinio.Santos; 07.02.2013
comment
@Plinio.Santos Plinio.Santos Я добавил описание того, как собрать SDK. - person Yury; 08.02.2013
comment
Любой известный способ для Android Studio? Я пробовал это, и это не сработало (на самом деле это вариант - скопировал оригинал и вставил его с другим именем папки, а также изменил android.jar на пользовательский, и это не работает). - person DADi590; 09.06.2020

Попробуй это:

  • создайте новый флодер в своем проекте, поместите имя флодера = "libs"
  • и включите сюда библиотеку.
  • И запустите приложение
  • Я надеюсь, что это работает
person Community    schedule 06.02.2013
comment
В этом случае я думаю, что мой пользовательский framework.jar будет включен в мой apk, верно? Я хочу, чтобы мое приложение использовало этот новый API непосредственно с устройства. - person Plinio.Santos; 06.02.2013

Это хороший вопрос! Думаю, ваш совет будет полезен и пользователям Android Studio.

Просто к вашему сведению, для пользователей IntelliJ вы также можете сделать это:

  1. Настройки проекта> Модули> щелкните вкладку «Зависимости»> нажмите кнопку «+»> выберите «JAR или каталоги».
  2. Найдите .jar и выберите его
  3. Переместите .jar вверху списка зависимостей (даже перед SDK)
  4. Измените область действия на «Предоставлено» (не «Компилировать»)

На шаге 4 вы можете избежать создания огромного .dex. (Ваш apk не будет включать framework.jar.)

person SunnyShiny9    schedule 21.07.2015
comment
Возможно, стоит отметить, что это кнопка + внизу (на самой вкладке Зависимости), не кнопка + в самом верхнем левом углу окна. Я нажал на последний по ошибке в первый раз, и это привело меня к долгой погоне за дикими гусями. - person Don Hatch; 27.12.2017