java - Maven 使用错误版本的 android 进行编译

标签 java android maven dependencies library-project

当我在正在使用的库项目上运行命令 mvn clean install 时,我收到来自 Maven 的错误,指出命令无法运行。当我运行该命令时,它给了我一堆编译器错误,这些错误与 maven 正在使用 android-9 而不是在 pom.xml 和 AndroidManifest.xml 中指定的 android-17 进行编译有关。

我确实需要一些指导。谢谢

BoD/android-switch-backport 的 pom.xml

<?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>

<!-- Needed to deploy to Maven Central. -->

<parent>
    <groupId>org.sonatype.oss</groupId>
    <artifactId>oss-parent</artifactId>
    <version>7</version>
</parent>


<!-- Informational stuff. -->

<groupId>org.jraf</groupId>
<artifactId>android-switch-backport</artifactId>
<version>1.1-SNAPSHOT</version>
<packaging>apklib</packaging>
<name>Android Switch Backport</name>
<description>
    A backport of the Switch widget (http://developer.android.com/reference/android/widget/Switch.html)
    that was introduced on Android 4.
    This port works on Android 2.1+.
</description>
<url>https://github.com/BoD/android-switch-backport</url>

<licenses>
    <license>
        <name>Apache 2.0</name>
        <url>http://www.apache.org/licenses/LICENSE-2.0.html</url>
        <distribution>repo</distribution>
    </license>
</licenses>

<scm>
    <url>git@github.com:BoD/android-switch-backport.git</url>
    <connection>scm:git:git@github.com:BoD/android-switch-backport.git</connection>
    <developerConnection>scm:git:git@github.com:BoD/android-switch-backport.git</developerConnection>
</scm>

<issueManagement>
    <url>https://github.com/BoD/android-switch-backport/issues</url>
    <system>GitHub Issues</system>
</issueManagement>

<developers>
    <developer>
        <id>BoD</id>
        <name>Benoit 'BoD' Lubek</name>
        <email>BoD@JRAF.org</email>
        <url>http://JRAF.org</url>
        <organization>JRAF.org</organization>
        <organizationUrl>http://JRAF.org</organizationUrl>
        <roles>
            <role>developer</role>
        </roles>
        <timezone>+1</timezone>
        <properties>
            <picUrl>https://en.gravatar.com/userimage/4833932/c2a1aef7adad2526e299518b325c2787.png</picUrl>
        </properties>
    </developer>
</developers>


<!-- Actually useful stuff. -->

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<dependencies>
    <dependency>
        <groupId>com.google.android</groupId>
        <artifactId>android</artifactId>
        <version>4.2.2</version>
        <scope>provided</scope>
    </dependency>
</dependencies>

<build>
    <sourceDirectory>src</sourceDirectory>
    <plugins>
        <plugin>
            <groupId>com.jayway.maven.plugins.android.generation2</groupId>
            <artifactId>android-maven-plugin</artifactId>
            <version>3.5.0</version>
            <extensions>true</extensions>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.0</version>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-gpg-plugin</artifactId>
            <version>1.4</version>
            <executions>
                <execution>
                    <id>sign-artifacts</id>
                    <phase>package</phase>
                    <goals>
                        <goal>sign</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

最佳答案

<plugin>
  <groupId>com.jayway.maven.plugins.android.generation2</groupId>
  <artifactId>android-maven-plugin</artifactId>
  <version>3.5.0</version>
  <extensions>true</extensions>
  <configuration>
    <sdk>
      <platform>17</platform> <!-- since you are dependent on 4.2.2 -->
    </sdk>
  <configuration>
</plugin>

循序渐进的方法。

<properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  <android.version>2.3.3</android.version>
  <android.api.level>10</android.api.level>
</properties>
<dependencies>
  <dependency>
    <groupId>com.google.android</groupId>
    <artifactId>android</artifactId>
    <version>${android.version}</version>
    <scope>provided</scope>
  </dependency>
</dependencies>
<plugin>
  <groupId>com.jayway.maven.plugins.android.generation2</groupId>
  <artifactId>android-maven-plugin</artifactId>
  <configuration>
    <sdk>
      <platform>${android.api.level}</platform>
    </sdk>
    <apk>
      <metaIncludes>
        <metaInclude>services/**</metaInclude>
      </metaIncludes>
    </apk>
  </configuration>
</plugin>

请查看here了解更多信息。

关于java - Maven 使用错误版本的 android 进行编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18708913/

相关文章:

java - 在 Java 中检测无法访问的主机的最快方法是什么?

java - 使用 Spring,如何将子 bean 注入(inject)父 bean 中?

递归线程中的 java.lang.OutOfMemoryError

java - 从包含的 jar 中读取属性文件

java - 使用 Maven 测试 Web 数据库应用程序

java - Android:如何在自己的应用程序中使用 Rsync?

java - 谷歌在Java中搜索

android - 如何访问 Android 设备上的可移动存储?

android - 无法使用 Google Services Analytics 编译 react 原生项目

java - 添加 GitLab 私有(private)仓库作为 Maven 依赖