mvn android:deploy not working (despite success confirmation)

為{幸葍}努か 提交于 2019-11-30 14:13:00

问题


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>

回答1:


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




回答2:


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



来源:https://stackoverflow.com/questions/11266373/mvn-androiddeploy-not-working-despite-success-confirmation

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!