从Android APP Manifest引用库内的库

时间:2014-09-23 13:44:34

标签: java android android-manifest ibeacon ibeacon-android

我有一个应用程序项目,它使用一个库(引用库项目,而不是使用jar)。在第一个库里面,我想使用另一个库(Estimate Beacons Library),这次使用第一个库libs文件夹中的jar。为了正确使用第二个库,我需要在清单中声明以下服务:

<service android:name="com.estimote.sdk.service.BeaconService"
     android:exported="false"/>

我已尝试在APP项目清单中声明此服务,但它没有得到它。使用第一个库项目清单是相同的(正常情况下,如果我没错,编译器会忽略此清单吗?)。

非常感谢任何帮助。我一直在寻找类似的问题,但我没有幸运。

编辑:

即使使用以下配置,它也不起作用:

  • 第一个库在lib文件夹中添加了Estimote Beacon SDK(第二个库)。此外,它还具有在清单中声明的​​蓝牙权限和服务。
  • APP项目有第一个库(不使用jar但引用项目)和第二个库在其lib文件夹中。蓝牙权限和服务在清单中声明。

我还创建了一个测试应用程序,声明服务和蓝牙权限,并在lib文件夹中添加库,它工作得很好,所以当我使用我的库时,它会变得混乱。

2 个答案:

答案 0 :(得分:0)

AndroidManifest.xml它只是Application配置文件,而不是build文件。

如果您使用的是Gradle构建系统,则应在build.gralesettings.gradle文件中指定库依赖项。

阅读此Building Your Android Project with Gradle

答案 1 :(得分:0)

尝试在project.properties文件中启用清单合并:

manifestmerger.enabled=true

在构建项目后,还要检查bin目录中生成的清单,并确保服务定义在那里。

这是适用于Android Beacon Library,的方法,我用它来使其他库依赖它。

但最终,Android Studio确实提供了更灵活的工具来实现这一目标。