使用 Maven 和 AAR 的 Android 项目没有 Eclipse 错误

Posted

技术标签:

【中文标题】使用 Maven 和 AAR 的 Android 项目没有 Eclipse 错误【英文标题】:Android project using Maven with AAR for not having Eclipse errors 【发布时间】:2014-09-18 07:37:36 【问题描述】:

我有一个使用多个库的 android 项目:

用于分析的播放服务, appcompat-v7 用于 actionar, 和其他...(用于广告、应用内...)

我曾经使用 APKLIB 打包并且能够生成我的项目的 APK,但是在 Eclipse 中出现了数百个错误。所以我的意图是解决这个问题,因为根本没有任何错误:-)

我发现了 AAR 格式和所有这些 gradle 人员,但我想继续使用我的 maven 结构。

所以我得到了 play_services 的 AAR 包(感谢 https://github.com/mosabua/maven-android-sdk-deployer)并生成了 appcompat-v7 和其他库的 AAR 包。

我几乎做到了这一点,除了一些样式错误和那些仍未找到的库中的其他缺失资源:

Error: No resource found that matches the given name (at 'value' with value '@integer/google_play_services_version').   
Error: No resource found that matches the given name (at 'theme' with value '@style/Theme.AppCompat.Light').    

这是我的一些依赖项的示例:

    <dependency>
      <groupId>com.google.android.gms</groupId>
      <artifactId>play-services</artifactId>
      <version>5.0.77</version>
      <type>aar</type>
    </dependency>
    <dependency>
        <groupId>com.google.android</groupId>
        <artifactId>android</artifactId>
        <version>4.1.1.4</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>android.support</groupId>
        <artifactId>compatibility-v7-appcompat</artifactId>
        <version>20.0.0</version>
        <type>jar</type>
    </dependency>
    <dependency>
        <groupId>android.support</groupId>
        <artifactId>compatibility-v7-appcompat</artifactId>
        <version>20.0.0</version>
        <type>aar</type>
    </dependency>
    <dependency>
        <groupId>android.support</groupId>
        <artifactId>compatibility-v4</artifactId>
        <version>20.0.0</version>
    </dependency>

我的问题是:

是否值得忘记 Maven 并转而使用 Gradle 来使用 Android 应用程序? (请说不:) 是否无法使用 AAR 打包获取依赖资源?我不想在 Eclipse 中导入我的所有项目以访问它们的资源。

【问题讨论】:

【参考方案1】:

迁移到 Gradle,它可能会为您修复它所付出的努力带来回报。这些新的谷歌库越来越多地为 Gradle 设计。 Android-Maven-Plugin 还不够成熟,无法像 APKLIB 过去那样很好地处理 AAR 文件,因此它可能需要进行大量的小调整。所以如果是这样的话,我建议把这段宝贵的时间花在 Gradle 上。

注意:“迁移到 Gradle”并不一定意味着您必须切换到 Android Studio。您仍然可以使用 Eclipse 的这个出色的 IDE ;-)

【讨论】:

您能否链接到一些资源,解释如何在 Eclipse 中正确使用 Gradle for Android 项目,或者您自己对此进行扩展?与 e.g. 相比,Eclipse 上的 AFAIK Gradle 支持低于标准。 Eclipse 上的 Maven 或 Android Studio 上的 Gradle,我还没有找到有人描述在 Eclipse 中管理基于 Gradle 的 Android 项目的可靠方法。 确实如此,IDE 与 Eclipse 的集成,只有编辑器运行良好。我个人更喜欢在命令行上使用 Gradle,所以基本上 Eclipse 只会用于编辑。您基本上可以以标准方式使用 Eclipse(即,将其他项目添加为 android-library 项目)并仅使用 Gradle 来执行发布构建(官方构建)和持续集成构建。在集成方面,Android Studio 是“***”,但在 IDE 的其他方面,我还是更喜欢坚持使用 Eclipse。 顺便说一下,这个链接是 Android Gradle 的必读链接:tools.android.com/tech-docs/new-build-system/user-guide

以上是关于使用 Maven 和 AAR 的 Android 项目没有 Eclipse 错误的主要内容,如果未能解决你的问题,请参考以下文章

有啥方法可以从 jitpack 的 maven 依赖项下载 aar

Gradle实战:发布aar包到maven仓库

android library打包成aar形式供别的项目引用

如何在 Android 中签署 AAR Artifacts?

把flutter项目作为aar添加到已有的Android工程上

把flutter项目作为aar添加到已有的Android工程上