有条件地包括AAR文件

时间:2015-05-19 07:05:54

标签: android estimote aar

我正在使用Estimote SDK,它作为AAR文件包含在我的项目中。 我想在支持蓝牙LE的设备上使用SDK,但也希望允许没有支持的硬件的用户安装。

Estimote SDK的清单包括:

<uses-feature
    android:name="android.hardware.bluetooth_le"
    android:required="true" />

这会阻止App在很多设备上安装。

我可以推翻android:minSdkVersion:

<uses-sdk android:minSdkVersion="18" />

<uses-sdk tools:overrideLibrary="com.estimote.sdk" />

但我不知道如何推翻,例如bluetooth_le指令。 我尝试解压缩'aar',更改Manifest并重新打包为.aar扩展名的zip,但我得到:

Error:Execution failed for task ':idoms-android:processIDomsAndroidDevDebugManifest'.
> com.android.manifmerger.ManifestMerger2$MergeFailureException: java.io.FileNotFoundException: /Users/Luuk/Documents/Java/idoms-android/idoms-android/build/intermediates/exploded-aar/estimote-sdk-preview/AndroidManifest.xml (No such file or directory)

甚至认为该文件存在。任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:0)

您应该考虑创建两种版本的apk,一种支持BLE并且包含您要使用的SDK,另一种不支持BLE。

如果您创建两种版本的应用程序,让我们称它们为“ble”和“normal”,那么您可以在Gradle构建中使用bleCompile 'yourDependency'normalCompile 'yourDependency'声明一些特定于特定于风格的依赖项文件。

答案 1 :(得分:0)

@Luuk

我是Estimote Android SDK的作者。

对于下一个SDK版本,我们会将<uses-feature android:name="android.hardware.bluetooth_le">更改为required=false

相关问题