mvn android:deploy not working (despite success confirmation)
Asked Answered
S

2

6

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>
Stanford answered 29/6, 2012 at 17:33 Comment(0)
P
11

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

Perverse answered 30/6, 2012 at 7:33 Comment(4)
Tried it, but no difference. Note though that I already have <device>usb</device> in my pom.xml, I shouldn't need the extra param; but anyhow, even with it, no difference. Very weird, as I don't get any error.Stanford
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 app first and redeploy the new one again. This works! But - if I don't have the app installed on my device at all before, or even delete the app manually before running maven, it won't work. Still testing further... Changing the value of 'undeployBeforeDeploy' from true to false doesn't make any difference here either.Stanford
Hm, it's working stable now, both my build section or also when I take yours. I find that <sign><debug>true</debug></sign> needs to be set to true, but that shouldn't be the reason, cause I had this part already commented out before in my pom (as posted in my initial question), which would then default to true anyway. But it's working now... maybe I had forgotten to comment it out in my last tests... I don't know. Anyway thanks for posting the pom, which made me check my code again line by line.Stanford
Pastebin is so full of Advertisements it is literally difficult to read the content.Straighten
A
0

I know it's old problem, but I have the same one and I didn't find solution here.

mvn clean android:emulator-start install android:deploy

Applaud answered 19/4, 2013 at 13:35 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.