pombreda / maven-android-plugin

Automatically exported from code.google.com/p/maven-android-plugin
0 stars 0 forks source link

Cannot find symbol android.os.Build.VERSION_CODES.GINGERBREAD_MR1 #291

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Use the test if(android.os.Build.VERSION.SDK_INT >= 
android.os.Build.VERSION_CODES.GINGERBREAD_MR1)
2. Run mvn clean install

What is the expected output?
The compilation shall run fine like in the eclipse ADT plugin.

What do you see instead?
The compilation fails with error 
cannot find symbol
[ERROR] symbol  : variable GINGERBREAD_MR1
[ERROR] location: class android.os.Build.VERSION_CODES

What version of maven-android-plugin are you using?
3.3.0

What are the complete output lines of "mvn -version" on your machine?
Apache Maven 3.0.3 (r1075438; 2011-02-28 18:31:09+0100)
Maven home: /usr/share/maven
Java version: 1.6.0_33, vendor: Apple Inc.
Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Default locale: fr_FR, platform encoding: MacRoman
OS name: "mac os x", version: "10.7.4", arch: "x86_64", family: "mac"

Please provide any additional information below.

Original issue reported on code.google.com by olivier....@gmail.com on 23 Jul 2012 at 8:32

GoogleCodeExporter commented 9 years ago
Those constants are present in the Build$VERSION_CODE.class so it's weird why 
this is not working as excepted.

Original comment by daniel.rindt on 2 Aug 2012 at 4:29

GoogleCodeExporter commented 9 years ago
And these symbols do not work (I think it is the same problem) :
    - android.hardware.Camera.getNumberOfCameras()
    - android.os.Build.VERSION_CODES.GINGERBREAD
    - android.content.pm.PackageManager.FEATURE_CAMERA_FRONT

Original comment by olivier....@gmail.com on 16 Aug 2012 at 2:55

GoogleCodeExporter commented 9 years ago
You might have an old version of android referenced as platform for the plugin 
or dependency. Can you share your pom or at least the android dependency and 
the plugin config?

Original comment by mosa...@gmail.com on 16 Oct 2012 at 8:13

GoogleCodeExporter commented 9 years ago
Here is a part of the global pom

<properties>
        <platform.version>2.2.1</platform.version>
        <sign.keystore>keystore</sign.keystore>
        <sign.alias>key</sign.alias>
        <sign.storepass>pwd</sign.storepass>
        <sign.keypass>pwd</sign.keypass>
    </properties>

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

            <!-- Androlog is a logging and reporting library for Android -->
            <dependency>
                <groupId>de.akquinet.android.androlog</groupId>
                <artifactId>androlog</artifactId>
                <version>1.0.5</version>
            </dependency>
            <dependency>
                <groupId>android.support</groupId>
                <artifactId>compatibility-v4</artifactId>
                <version>r6</version>
            </dependency>
            <dependency>
                <groupId>com.google.android.maps</groupId>
                <artifactId>maps</artifactId>
                <version>7_r1</version>
                <scope>provided</scope>
              </dependency>     
            <dependency>
                <groupId>org.twitter4j</groupId>
                <artifactId>twitter4j-core</artifactId>
                <version>2.2.4</version>
            </dependency>
            <dependency>
                <groupId>oauth.signpost</groupId>
                <artifactId>signpost-commonshttp4</artifactId>
                <version>1.2.1.1</version>
            </dependency>
            <dependency>
                <groupId>commons-httpclient</groupId>
                <artifactId>commons-httpclient</artifactId>
                <version>3.1</version>
            </dependency>
            <dependency>
                <groupId>com.google.zxing</groupId>
                <artifactId>core</artifactId>
                <version>1.6</version>
            </dependency>
            <dependency>
                <groupId>net.iharder</groupId>
                <artifactId>base64</artifactId>
                <version>2.3.8</version>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpmime</artifactId>
                <version>4.1</version>
            </dependency>
            <dependency>
                <groupId>com.androidquery</groupId>
                <artifactId>androidquery</artifactId>
                <version>0.22.10</version>
            </dependency>
                        <dependency>
                           <groupId>junit</groupId>
                           <artifactId>junit</artifactId>
                           <version>4.10</version>
                           <scope>provided</scope>
                        </dependency>
            <dependency>
                <groupId>com.jayway.android.robotium</groupId>
                <artifactId>robotium-solo</artifactId>
                <version>3.1</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>com.jayway.maven.plugins.android.generation2</groupId>
                    <artifactId>android-maven-plugin</artifactId>
                    <version>3.3.2</version>
                    <inherited>true</inherited>
                    <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>16</platform>
                        </sdk>
                        <undeployBeforeDeploy>true</undeployBeforeDeploy>
                    </configuration>
                </plugin>
                <plugin>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>2.3.2</version>
                    <inherited>true</inherited>
                    <configuration>
                        <source>1.5</source>
                        <target>1.5</target>
                    </configuration>
                </plugin>
                <plugin>
                    <artifactId>maven-enforcer-plugin</artifactId>
                    <version>1.0</version>
                </plugin>
                <plugin>
                    <artifactId>maven-release-plugin</artifactId>
                    <version>2.2.1</version>
                    <configuration>
                        <autoVersionSubmodules>true</autoVersionSubmodules>
                    </configuration>
                </plugin>
                <plugin>
                    <artifactId>maven-jarsigner-plugin</artifactId>
                    <version>1.2</version>
                    <inherited>true</inherited>
                </plugin>
                <plugin>
                    <groupId>com.pyx4me</groupId>
                    <artifactId>proguard-maven-plugin</artifactId>
                    <version>2.0.4</version>
                    <dependencies>
                        <dependency>
                            <groupId>net.sf.proguard</groupId>
                            <artifactId>proguard</artifactId>
                            <version>4.4</version>
                            <scope>runtime</scope>
                        </dependency>
                    </dependencies>
                    <configuration>
                        <proguardVersion>4.4</proguardVersion>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>

    <profiles>
        <profile>
            <id>release</id>
            <activation>
                <property>
                    <name>performRelease</name>
                    <value>true</value>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-jarsigner-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>signing</id>
                                <goals>
                                    <goal>sign</goal>
                                    <goal>verify</goal>
                                </goals>
                                <phase>package</phase>
                                <inherited>true</inherited>
                                <configuration>
                                    <removeExistingSignatures>true</removeExistingSignatures>
                                    <archiveDirectory />
                                    <includes>
                                        <include>${project.build.directory}/${project.artifactId}.apk</include>
                                    </includes>
                                    <keystore>${sign.keystore}</keystore>
                                    <alias>${sign.alias}</alias>
                                    <storepass>${sign.storepass}</storepass>
                                    <keypass>${sign.keypass}</keypass>
                                    <verbose>true</verbose>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <!-- the signed apk then needs to be zipaligned -->
                    <plugin>
                        <groupId>com.jayway.maven.plugins.android.generation2</groupId>
                        <artifactId>maven-android-plugin</artifactId>
                        <inherited>true</inherited>
                        <configuration>
                            <sign>
                                <debug>false</debug>
                            </sign>
                            <zipalign>
                                <verbose>true</verbose>
                                <inputApk>${project.build.directory}/${project.artifactId}.apk</inputApk>
                                <outputApk>${project.build.directory}/${project.artifactId}-signed-aligned.apk
                                </outputApk>
                            </zipalign>
                        </configuration>
                        <executions>
                            <execution>
                                <id>alignApk</id>
                                <phase>package</phase>
                                <goals>
                                    <goal>zipalign</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <artifactId>maven-enforcer-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>enforce-signing-properties</id>
                                <goals>
                                    <goal>enforce</goal>
                                </goals>
                                <configuration>
                                    <rules>
                                        <requireProperty>
                                            <property>sign.keystore</property>
                                            <message>The 'sign.keystore' property is missing. It must contain the path to the
                                                keystore used to sign the application.</message>
                                        </requireProperty>
                                        <requireFilesExist>
                                            <files>
                                                <file>${sign.keystore}</file>
                                            </files>
                                            <message>The 'sign.keystore' property does not point to a file. It must contain the
                                                path to the keystore used to sign the application.</message>
                                        </requireFilesExist>
                                        <requireProperty>
                                            <property>sign.alias</property>
                                            <message>The 'sign.alias' property is missing. It must contain the key alias used to
                                                sign the application.</message>
                                        </requireProperty>
                                        <requireProperty>
                                            <property>sign.storepass</property>
                                            <message>The 'sign.storepass' property is missing. It must contain the password of
                                                the keystore used to sign the application.
                                            </message>
                                        </requireProperty>
                                        <requireProperty>
                                            <property>sign.keypass</property>
                                            <message>The 'sign.keypass' property is missing. It must contain the password of the
                                                key used to sign the application.</message>
                                        </requireProperty>
                                    </rules>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>linux</id>
            <activation>
                <os>
                    <family>unix</family>
                </os>
            </activation>
            <properties>
                <rt.jar.path>${java.home}/jre/lib/rt.jar</rt.jar.path>
                <jsse.jar.path>${java.home}/jre/lib/jsse.jar</jsse.jar.path>
            </properties>
        </profile>
        <!-- mac profile has to be after unix since running on mac will trigger both -->
        <profile>
            <id>mac</id>
            <activation>
                <os>
                    <family>mac</family>
                </os>
            </activation>
            <properties>
                <!-- absolute path -->
                <!--<rt.jar.path>/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/classes.jar</rt.jar.path> -->
                <!-- or with JAVA_HOME /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/ -->
                <rt.jar.path>${java.home}/../Classes/classes.jar</rt.jar.path>
                <jsse.jar.path>${java.home}/../Classes/jsse.jar</jsse.jar.path>
            </properties>
        </profile>
        <profile>
            <id>windows</id>
            <activation>
                <os>
                    <family>windows</family>
                </os>
            </activation>
            <properties>
                <rt.jar.path>${java.home}/jre/lib/rt.jar</rt.jar.path>
                <jsse.jar.path>${java.home}/jre/lib/jsse.jar</jsse.jar.path>
            </properties>
        </profile>
        <profile>
                    <id>sign</id>
                    <build>
                        <plugins>
                            <plugin>
                                <groupId>org.codehaus.mojo</groupId>
                                <artifactId>exec-maven-plugin</artifactId>
                                <version>1.1.1</version>
                                <executions>
                                    <execution>
                                        <id>zipalign</id>
                                        <goals>
                                            <goal>exec</goal>
                                        </goals>
                                        <phase>install</phase>
                                        <configuration>
                                            <executable>${ANDROID_HOME}/tools/zipalign</executable>
                                             <arguments>
                                                <argument>-f</argument>
                                                <argument>4</argument>
                                                <argument>target/${project.build.finalName}.apk</argument>
                                                <argument>target/${project.build.finalName}-zipped.apk</argument>
                                            </arguments>
                                        </configuration>
                                    </execution>
                                </executions>
                            </plugin>
                        </plugins>
                    </build>
                </profile>
    </profiles>

Original comment by olivier....@gmail.com on 16 Oct 2012 at 8:30

GoogleCodeExporter commented 9 years ago
Your android dependency version is wrong. Gingerbread is 2.3 and not 2.2

Original comment by mosa...@gmail.com on 23 Oct 2012 at 3:57

GoogleCodeExporter commented 9 years ago

Original comment by mosa...@gmail.com on 23 Oct 2012 at 3:58

GoogleCodeExporter commented 9 years ago
That's right. The platform version to use for the 
<dependency>
    <groupId>com.google.android</groupId>
     <artifactId>android-test</artifactId>
     <version>${platform.version}</version>
     <scope>provided</scope>
</dependency>

shall be 4.1.1.7.

According to this link : 
http://search.maven.org/#search%7Cga%7C1%7Ca%3A%22android%22

Original comment by olivier....@gmail.com on 23 Oct 2012 at 8:26