2

我目前正在尝试使用 Android 中内置的库 OpenMobile API。(并非适用于所有设备)。

我正在按照本教程将库添加到我的 android sdk:https ://github.com/seek-for-android/pool/wiki/UsingSmartCardAPI

我已经通过 SDK 管理器添加了 OpenMobile API,现在我在 path-to-sdk/sdk/add-ons 中有文件夹。我目前在 Android Studio 中使用最新版本的 android (25),位于 sdk/add-ons 中的 OpenMobileAPI 文件可用于版本 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()");
  }
}

它是这样写的:

构建 SDK:开放移动 API (Giesecke & Devrient GmbH) (API 21)

Android Studio 无法识别 org.simalliance,所以我无法使用它。

如何构建 SDK 以便库类在 Android Studio 中可用?

4

2 回答 2

3

在 Android 应用程序 gradle 内部:

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 中编译。

于 2017-01-09T09:09:26.030 回答
0

使用 Android Studio,这个解决方案对我有用。首先,在“File>Project Structure>SDKs”中点击“+”图标并通过选择“Android 5.0 Open Mobile API ...”添加新的Android SDK。然后转到“文件>项目结构>模块”,选择您的应用程序模块,在“依赖项”选项卡中为“模块 SDK”选项选择“Android 5.0 Open Mobile API ...”。单击确定,Android Studio 会解析类。

为了让 gradle 工作,我必须将“org.simalliance.openmobileapi.jar”从 android sdk 的附加组件复制到我的应用模块的“libs”目录,然后使用上面的 Kel H. 答案,将“提供”替换为“编译” "来构建项目。希望能帮助到你。

于 2017-07-29T07:16:14.277 回答