如何构建 Android SDK 以便能够使用位于 sdk/add-ons 中的库
How to build an Android SDK to be able to use libraries located in sdk/add-ons
我目前正在尝试使用 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()");
}
}
写着:
Build SDK: Open Mobile API (Giesecke & Devrient GmbH) (API 21)
org.simalliance 无法被 Android Studio 识别,所以我无法使用它。
如何构建 SDK 以便库 class 在 Android Studio 中可用?
在 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" />
provided 而不是 compile 允许在代码中识别和使用库,但在构建过程中不会在 apk 中编译。
使用 Android Studio,这个解决方案对我很有效。首先,在 "File>Project Structure>SDKs" 中单击“+”图标并通过选择 "Android 5.0 Open Mobile API ..." 添加新的 Android SDK。然后转到 "File>Project Structure>Modules"、select 您的应用程序模块,在 "dependencies" 选项卡 select "Android 5.0 Open Mobile API ..." 中的 "Module SDK" 选项。单击“确定”,Android Studio 解析 类。
为了 gradle 工作,我必须将 "org.simalliance.openmobileapi.jar" 从 android sdk 的附加组件复制到我的应用程序模块的 "libs" 目录,然后使用 Kel H.上面的答案,通过将 "provided" 替换为 "compile" 来构建项目。希望对你有帮助。
我目前正在尝试使用 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()");
}
}
写着:
Build SDK: Open Mobile API (Giesecke & Devrient GmbH) (API 21)
org.simalliance 无法被 Android Studio 识别,所以我无法使用它。
如何构建 SDK 以便库 class 在 Android Studio 中可用?
在 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" />
provided 而不是 compile 允许在代码中识别和使用库,但在构建过程中不会在 apk 中编译。
使用 Android Studio,这个解决方案对我很有效。首先,在 "File>Project Structure>SDKs" 中单击“+”图标并通过选择 "Android 5.0 Open Mobile API ..." 添加新的 Android SDK。然后转到 "File>Project Structure>Modules"、select 您的应用程序模块,在 "dependencies" 选项卡 select "Android 5.0 Open Mobile API ..." 中的 "Module SDK" 选项。单击“确定”,Android Studio 解析 类。
为了 gradle 工作,我必须将 "org.simalliance.openmobileapi.jar" 从 android sdk 的附加组件复制到我的应用程序模块的 "libs" 目录,然后使用 Kel H.上面的答案,通过将 "provided" 替换为 "compile" 来构建项目。希望对你有帮助。