【发布时间】:2015-11-13 10:16:45
【问题描述】:
我有两个使用 maven 设置的项目。主项目包括对 support-design、support-v4、appcommpat-v7 和更多库的 aar maven 依赖项。第二个项目是 espresso 测试项目,测试应用程序的主要功能,并将主项目包含为 maven 依赖项。为了测试它们的功能,我需要在我的第二个项目中引用其中一些支持类。我可以毫无问题地在 espresso 项目中使用主项目的 jar 依赖项。只有在尝试引用 aar 类时,编译器才能找到它们并告诉我
错误:找不到符号
。我在这两个项目上都在使用 Android Studio,当我使用它的依赖项浏览器查看项目结构时,Studio 告诉我所需 aar 库的“类根..”是“..invalid”。
这就是 aar 包包含在主项目及其所需插件中的方式,该插件也包含在第二个项目中。主项目正在正确编译:
<dependency>
<groupId>com.google.download.android</groupId>
<artifactId>support-v4</artifactId>
<version>22.2.1</version>
<type>aar</type>
</dependency>
<plugin>
<groupId>com.simpligility.maven.plugins</groupId>
<artifactId>android-maven-plugin</artifactId>
<version>4.2.1</version>
<extensions>true</extensions>
<configuration>
<release>true</release>
<sign>
<debug>true</debug>
</sign>
<proguard>
<skip>true</skip>
</proguard>
<failOnNonStandardStructure>false</failOnNonStandardStructure>
<androidManifestFile>
AndroidManifest.xml
</androidManifestFile>
<resourceDirectory>res</resourceDirectory>
<assetsDirectory>assets</assetsDirectory>
<nativeLibrariesDirectory>libs
</nativeLibrariesDirectory>
<sdk>
<platform>22</platform>
<path>${sdk-path}</path>
</sdk>
</configuration>
<executions>
<execution>
<id>alignApk</id>
<phase>package</phase>
<goals>
<goal>zipalign</goal>
</goals>
</execution>
</executions>
</plugin>
我尝试解决这个问题: 包括 espresso 项目 pom 中提供的依赖项。
<dependency>
<groupId>com.google.download.android</groupId>
<artifactId>support-v4</artifactId>
<version>22.2.1</version>
<type>aar</type>
<scope>provided</scope>
</dependency>
-> 没有解决问题。
附加要求:我需要使用 maven 进行编译,不能迁移到 gradle。
你有什么建议吗?
感谢您的帮助!
【问题讨论】:
-
这能回答你的问题吗? Transitive AAR dependencies in Maven
标签: android maven android-studio android-espresso