Android с maven? Apk unknown

Невозможно заставить 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 ()

Ответ 1

В настоящее время я использую android-maven-plugin 3.1.1 для своего проекта и даю ему попробовать с 3.2.0. Похоже, у Maven есть проблемы с загрузкой одного из требуемые зависимости emma-2.1.5320.jar от Центрального репозитория Maven, однако, я устал mvn clean install несколько раз и, наконец, загрузил emma-2.1.5320.jar.

Попробуйте запустить mvn clean install несколько раз, если он все еще не работает, загрузите и установите его вручную, emma-2.1.5320.jar с источником и javadoc доступны на Центральный репозиторий Maven:

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

У меня была такая же проблема, потому что у меня был добавлен плагин Android в разделе конфигурации <build><pluginManagement>.

Перемещение на <build><plugins> решило мою проблему.

Ответ 3

Добавьте extensions в конфигурацию android-maven-plugin.

Расширения

Следует ли загружать расширения 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 - последняя версия андроида-maven-плагина.