Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

mvn android:deploy not working (despite success confirmation)

I'm using the android-maven-plugin 3.2.0 and run the following in order to install and start the apk on my device (Nexus One, Android 2.3.6), which is the only one connected via usb and visible to adb; no emulator running in parallel either.

mvn install android:deploy android:run

Below is the output in my shell, which looks all good, and I even get a message saying

Successfully installed /Users/myuser/Projects/MyCompany/com.mycompany.abc/target/com.mycompany.abc-1.0-SNAPSHOT.apk to HT9CPP805008_HTC_NexusOne

but it's not true, the apk is not installed on my device, can't be found under applications. The only way I can currently get the apk really installed is via a workaround, because android:deploy doesn't seem to work correctly. (adb itself works fine though, I can run any command (push, install, etc.) manually via adb and it also finds my devices without a problem. I'm on Mac OS X Lion with adb v1.0.29)

Update:

Here's an interesting finding I just made: android:deploy/run works fine if I have the app already installed on my device before and then run maven, which would then undeploy the old apk firstly and then redeploy the new one. This works! But - if I don't have the app installed on my device at all before, or delete the app manually before running maven, it won't work. Changing the value of <undeployBeforeDeploy> from true to false doesn't make any difference here either.

Has anybody experienced this problem before?

[INFO] Scanning for projects...
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for com.mycompany:com.mycompany.abc:apk:1.0-SNAPSHOT
[WARNING] 'build.plugins.plugin.version' for org.codehaus.mojo:exec-maven-plugin is missing. @ line 85, column 21
[WARNING] 
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING] 
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING] 
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building com.mycompany.abc 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- android-maven-plugin:3.2.0:deploy (default-cli) @ com.mycompany.abc ---
[INFO] Waiting for initial device list from the Android Debug Bridge
[INFO] Found 1 devices connected with the Android Debug Bridge
[INFO] android.device parameter set to usb
[INFO] Device HT9CPP805008_HTC_NexusOne found.
[INFO] Successfully installed /Users/myuser/Projects/MyCompany/com.mycompany.abc/target/com.mycompany.abc-1.0-SNAPSHOT.apk to HT9CPP805008_HTC_NexusOne
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 5.334s
[INFO] Finished at: Sat Jun 30 01:23:01 CST 2012
[INFO] Final Memory: 12M/126M
[INFO] ------------------------------------------------------------------------

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>
  <groupId>com.mycompanyany</groupId>
  <artifactId>com.mycompany.abc</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>apk</packaging>
  <name>com.mycompany.abc</name>

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

    <build>
        <sourceDirectory>src</sourceDirectory>
        <plugins>
            <!-- Simply read properties from file -->
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>properties-maven-plugin</artifactId>
                <version>1.0-alpha-2</version>
                <executions>
                    <execution>
                        <phase>initialize</phase>
                        <goals>
                            <goal>read-project-properties</goal>
                        </goals>
                        <configuration>
                            <files>
                                <file>android.properties</file>
                            </files>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <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>11</platform>
                    </sdk>
                    <deleteConflictingFiles>true</deleteConflictingFiles>
                    <undeployBeforeDeploy>false</undeployBeforeDeploy>
                    <!--<sign><debug>false</debug></sign>-->
                    <device>usb</device>
                </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>

            <plugin>
                <artifactId>exec-maven-plugin</artifactId>
                <groupId>org.codehaus.mojo</groupId>
                <configuration>
                    <executable>${basedir}/scripts/run_app.sh</executable>
                </configuration>
            </plugin>

        </plugins>
    </build>   

</project>
like image 216
Mathias Conradt Avatar asked Jun 29 '12 17:06

Mathias Conradt


1 Answers

I'm working with maven plugin with no problem (Linux and Galaxy Nexus) and works fine.

Try this:

mvn clean install android:deploy android:run -Dandroid.device=usb

This is my pom:

http://pastebin.com/tzuFyjSx

Hope this will help you

like image 75
sourcerebels Avatar answered Nov 20 '22 00:11

sourcerebels