Android如何使用Maven构建?APK未知。

12

无法让Android与Maven一起工作。可能是什么问题(从Maven快速启动原型生成):

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>asd</groupId>
    <artifactId>asd</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>apk</packaging>
    <name>asd</name>

    <properties>
        <platform.version>4.0.3</platform.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>com.google.android</groupId>
            <artifactId>android</artifactId>
            <version>${platform.version}</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>com.jayway.maven.plugins.android.generation2</groupId>
                <artifactId>android-maven-plugin</artifactId>
                <version>3.2.0</version>
                <configuration>
                    <androidManifestFile>${project.basedir}/AndroidManifest.xml</androidManifestFile>
                    <assetsDirectory>${project.basedir}/assets</assetsDirectory>
                    <resourceDirectory>${project.basedir}/res</resourceDirectory>
                    <nativeLibrariesDirectory>${project.basedir}/src/main/native</nativeLibrariesDirectory>
                    <sdk>
                        <platform>15</platform>
                    </sdk>
                    <emulator>
                        <avd>Android4</avd>
                    </emulator>
                    <undeployBeforeDeploy>true</undeployBeforeDeploy>
                </configuration>
                <extensions>true</extensions>
            </plugin>

            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

导致:

Project build error: Unknown packaging: apk

加号

Project build error: Unresolveable build extension: Plugin 
com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.2.0 or one of its 
dependencies could not be resolved: Failed to collect dependencies for 
com.jayway.maven.plugins.android.generation2:android-maven-plugin:jar:3.2.0 ()
5个回答

10

我遇到了同样的问题,因为我将android插件添加到了配置文件的<build><pluginManagement>部分中。

将其移动到<build><plugins>部分解决了我的问题。


1
当我将android-maven-plugin从3.7.0升级到3.9.0-rc.2时,这对我起了作用。 - Konsumierer

6

在您的android-maven-plugin配置中添加extensions选项。

extensions

是否从此插件加载Maven扩展(例如打包和类型处理程序)。

示例配置:

<plugin>
    <groupId>com.jayway.maven.plugins.android.generation2</groupId>
    <artifactId>android-maven-plugin</artifactId>
    <version>3.9.0-rc.2</version>
    <extensions>true</extensions>
    <configuration>
        <sdk>
            <platform>${android.platform}</platform>
        </sdk>
    </configuration>
</plugin>

这解决了apk未知打包的问题。


4

<version>3.2.0</version> 替换为 <version>3.6.0</version>,然后清理并安装该软件包。3.6.0 是最新版本的 android-maven-plugin。


4
我目前正在使用android-maven-plugin 3.1.1来进行我的项目,并尝试使用3.2.0版本。看起来Maven在从Maven中央库下载 所需依赖项 emma-2.1.5320.jar时出现了一些问题,但是,我已经多次尝试了mvn clean install,最终成功下载了emma-2.1.5320.jar。
如果仍然不起作用,请尝试多次运行mvn clean install,或者手动下载并安装它。可从Maven Central Repository下载包括源码和javadoc的emma-2.1.5320.jar文件。
mvn install:install-file -Dfile=emma-2.1.5320.jar \
                     -Dsources=emma-2.1.5320-sources.jar \
                     -Djavadoc=emma-2.1.5320-javadoc.jar \
                     -DgroupId=emma \
                     -DartifactId=emma \
                     -Dversion=2.1.5320 \
                     -Dpackaging=jar

现在您应该能够使用android-maven-plugin 3.2.0,希望这可以帮到您。


2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接