Как собрать Android SDK, чтобы иметь возможность использовать библиотеки, расположенные в sdk/add-ons

В настоящее время я пытаюсь использовать OpenMobile API, встроенный в библиотеку Android. (и не доступно для каждого устройства).

Я следую этому руководству, чтобы добавить библиотеку в мой Android SDK: https://github.com/seek-for-android/pool/wiki/UsingSmartCardAPI

Я добавил OpenMobile API через SDK Manager, и теперь у меня есть папки в пути к надстройкам sdk / sdk /. В настоящее время я использую последнюю версию android (25) в Android Studio, и файлы OpenMobileAPI, расположенные в sdk / add-ons, доступны для версии 21. Нет доступных библиотек выше 21 (см. http://seek-for-android.github.io/repository/21/addon.xml).

Манифест:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  <application android:label="@string/app_name">

    <uses-library android:name="org.simalliance.openmobileapi" android:required="true" />

    <activity android:name=".MainActivity">
      ...
    </activity>
  </application>
</manifest> 

Основная деятельность

import org.simalliance.openmobileapi.*;

public class MainActivity extends Activity implements SEService.CallBack {
  ...
  public void serviceConnected(SEService service) {
    Log.i(LOG_TAG, "seviceConnected()");
  }
}

Это написано:

Build SDK: открытый мобильный API (Giesecke & Devrient GmbH) (API 21)

Android Studio не распознает org.simalliance, поэтому я не могу его использовать.

Как собрать SDK, чтобы класс библиотеки был доступен в Android Studio?

2 ответа

Решение

Внутри приложения для Android:

compile fileTree(include: ['*.jar'], dir: 'libs', 'exclude': ['org.simalliance.openmobileapi.jar'])

provided files('libs/org.simalliance.openmobileapi.jar')

Манифест: В тег приложения добавьте:

<uses-library android:name="org.simalliance.openmobileapi" android:required="false" />

Предоставленное вместо компиляции позволяет библиотеке распознаваться и использоваться в коде, но не компилируется в apk во время сборки.

Используя Android Studio, это решение работало для меня. Сначала в "Файл> Структура проекта>SDK" щелкните значок "+" и добавьте новый Android SDK, выбрав "Android 5.0 Open Mobile API ...". Затем перейдите в "Файл> Структура проекта> Модули", выберите модуль приложения, на вкладке "Зависимости" выберите "Android 5.0 Open Mobile API..." для параметра "Модуль SDK". Нажмите OK, и Android Studio разрешит классы.

Для работы gradle мне нужно скопировать "org.simalliance.openmobileapi.jar" из надстроек android sdk в каталог "libs" моего модуля приложения, а затем использовать ответ Kel H. выше, заменив "предоставленный" на "compile". "построить проект. Надеюсь, поможет.

Другие вопросы по тегам