Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Maven compilation error for android Project "error: package R does not exist "

I am trying to set up a MAVEN project with Android application. I have this pom file

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

and during MAVEN compile I get this error (about 100 times, ie as many times as it is used in my methods)

    [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

Any idea about this error? On the web I either find unanswered questions about similar error output. I have no experience on MAVEN, so I believe I am missing something here.

like image 984
geoak Avatar asked Oct 21 '13 14:10

geoak


1 Answers

R class is build by your IDE during compilation. MAVEN cannot find the R class because by default the class can be found under build folder. You need to add something like this

<sourceDirectory>build</sourceDirectory>
<outputDirectory>target</outputDirectory>

telling MAVEN that you have some resource files under build folder and you want to make them available to compile so add them under the target folder which will be under your project.

so now I have

build
  |----res
  |----src
src
  |----main
       |----java
       |----res 
target
like image 166
geoak Avatar answered Oct 01 '22 17:10

geoak