Android项目的Maven编译错误"错误:包R不存在"

geo*_*oak 6 java android maven

我正在尝试使用Android应用程序设置MAVEN项目.我有这个pom文件

<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>com.myproject</groupId>
  <artifactId>userprofile</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>userprofile</name>
  <url>http://maven.apache.org</url>
    <dependencies>
        <dependency>
            <groupId>com.google.android</groupId>
            <artifactId>android</artifactId>
            <version>4.1.1.4</version>
            <scope>provided</scope>
        </dependency>

    </dependencies>
</project>
Run Code Online (Sandbox Code Playgroud)

在MAVEN编译期间,我得到了这个错误(大约100次,即在我的方法中使用的次数)

    [INFO] -------------------------------------------------------------
    [ERROR] COMPILATION ERROR : 
    [INFO] -------------------------------------------------------------
src\main\java\com\myproject\userprofile\BaseActivity.java:[52,43] error: package R does not exist
    Process finished with exit code 1
Run Code Online (Sandbox Code Playgroud)

有关此错误的任何想法?在网络上,我要么找到关于类似错误输出的未解答的问题.我没有MAVEN的经验,所以我相信我在这里遗漏了一些东西.

geo*_*oak 3

R 类是在编译期间由 IDE 构建的。MAVEN 找不到 R 类,因为默认情况下可以在构建文件夹下找到该类。你需要添加这样的东西

<sourceDirectory>build</sourceDirectory>
<outputDirectory>target</outputDirectory>
Run Code Online (Sandbox Code Playgroud)

告诉 MAVEN 您在 build 文件夹下有一些资源文件,并且您希望它们可用于编译,因此将它们添加到项目下的目标文件夹下。

所以现在我有

build
  |----res
  |----src
src
  |----main
       |----java
       |----res 
target
Run Code Online (Sandbox Code Playgroud)