【问题标题】:How to use resource in Android library dependency on ADT?如何在 ADT 的 Android 库依赖中使用资源?
【发布时间】:2014-02-03 20:48:47
【问题描述】:

我的开发环境:

  • 广告:22.3.0
  • android-maven-plugin:3.8.2
  • maven:3.1.1

我正在开发一个具有 maven 结构和依赖关系的谷歌地图 Android 应用程序,如下所示:

<dependency>
  <groupId>com.google.android.gms</groupId>
  <artifactId>google-play-services</artifactId>
  <version>13.0.0</version>
  <type>apklib</type>
</dependency>

<dependency>
  <groupId>com.google.android.gms</groupId>
  <artifactId>google-play-services</artifactId>
  <version>13.0.0</version>
</dependency>

<dependency>
  <groupId>com.google.android.gms</groupId>
  <artifactId>play-services</artifactId>
  <version>4.0.30</version>
  <type>aar</type>
</dependency>

我尝试了 apk 和 aar 类型,但我仍然无法在 android lib 依赖项中使用资源可绘制、字符串等(R.drawable.poi、R.style.button_style1..)。我该如何处理?

【问题讨论】:

    标签: android eclipse maven adt google-play-services


    【解决方案1】:

    要使用Library的资源drawable,您还必须将项目导入eclipse工作区并从您的mavenized项目中引用它。

    我遇到了这个问题,通过将 Google-play-services 项目导入工作区并从我的 maven 项目中引用它来解决它。

    供参考。右键点击你的项目->属性->Android->(libraryProjects->Add->[browse google-play-library project]),点击应用并保存。

    您可以在 sdk/extras/google/ 中找到 google-play-library 项目

    【讨论】:

    • 我已经知道了,我使用 maven 和 aar 是因为依赖管理没有将依赖库导入我的工作区,只需在 pom.xml 中声明它们。 AFAIK maven android 插件从 3.8.2(code.google.com/p/maven-android-plugin/wiki/Changelog) 开始支持 aar 包格式,我们可以使用 android lib 文件中的资源。我在 android studio 中使用 maven 而不是在 eclipse 中实现了这一点
    【解决方案2】:

    android-maven-plugin从3.8.0版本更新到3.8.2后,我们的项目出现了类似的问题,android-maven-plugin看起来有bug。

    我们不得不回退到版本 3.8.0。我建议您使用 apklib 执行相同的操作,因为 aar 仅在 3.8.2 版本后可用,如果您想使用 aar 等待更高版本的 android-maven-plugin。

    详细来说,问题出在 apklib 的链接中,所有引用的资源(布局、可绘制对象...)似乎都没有对齐。例如,显示布局或可绘制对象而不是另一个。访问布局中缺少的引用/id 时应用程序崩溃(引用不存在,因为加载了错误的布局)。

    见问题http://code.google.com/p/maven-android-plugin/issues/detail?id=441

    【讨论】:

    猜你喜欢
    • 2020-11-11
    • 2013-12-19
    • 1970-01-01
    • 1970-01-01
    • 2011-07-14
    • 2014-02-04
    • 2014-08-18
    • 2011-05-27
    • 1970-01-01
    相关资源
    最近更新 更多