使用Maven Android插件的最新版本4.0.0-rc.1,构建中似乎缺少某些类。当我启动应用程序时,我得到了其中一个例外(启动应用程序的两种可能方式):
两个缺失的类都在support-v4-21.0.0.aar / libs / internal_impl-21.0.0.jar中。
我的依赖关系定义:
<dependency>
<groupId>com.android.support</groupId>
<artifactId>support-v4</artifactId>
<version>21.0.0</version>
<type>aar</type>
</dependency>
这是一些配置错误吗? Android Maven插件中的一个错误?
答案 0 :(得分:10)
您需要在pom中设置以下配置:
<includeLibsJarsFromAar>true</includeLibsJarsFromAar>
所以它看起来像这样:
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<extensions>true</extensions>
<configuration>
//...
<includeLibsJarsFromAar>true</includeLibsJarsFromAar>
//... rest of config
</configuration>
</plugin>
这种变化的原因是谷歌决定把罐子放在aar里面,这是一种不好的依赖做法。如果要替换版本或其他内容,则目前无法替换。简而言之,它使依赖关系变得更加难以管理。
默认情况下,此设置设置为false,以阻止在libs文件夹中使用jar创建aar的行为。
使用最新的Android-Maven-Plugin(现在4.1.1很快4.2.0),默认情况下此标志设置为true,因此您不再需要添加它。
答案 1 :(得分:0)
我找到了一个临时解决方案:
cp support-v4-21.0.0.aar ~/Desktop
cd ~/Desktop && mv support-v4-21.0.0.aar support-v4-21.0.0.jar
jar xf support-v4-21.0.0.jar
然后从internal_impl-21.0.0.jar
文件夹中取出libs
并上传到您自己的神器(如果有的话),并修改它应该有效的pom文件,如果你没有自己的神器,那么添加它进入类路径。
这对我有用。
答案 2 :(得分:0)
你是否包含一个jar文件,其中包含aar依赖的“提供”范围?我想我发现了同样的错误并且遇到了同样的问题。