2012-10-13 4 views
10

내 Android 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 Run->Android Application을 선택합니다. 에뮬레이터가 시작되고 변경 사항이 반영됩니다.Android Maven이 에뮬레이터를 시작하지 않음

하지만 아래의 명령을 실행해도 반영되지 않습니다.

mvn clean install 
mvn android:deploy 
mvn android:emulator-start 

More-Over, 에뮬레이터가 열리지 않으면 deploy 및 emulator-start 명령이 실패합니다. Found 0 devices connected with the Android Debug Bridge.

[ERROR] Failed to execute goal com.jayway.maven.plugins.android.generation2:andr 
oid-maven-plugin:3.3.0:deploy (default-cli) on project SampleProject: No online de 
vices attached. -> [Help 1] 
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal c 
om.jayway.maven.plugins.android.generation2:android-maven-plugin:3.3.0:deploy (d 
efault-cli) on project SampleProject: No online devices attached. 
     at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor 
.java:217) 
     at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor 
.java:153) 
     at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor 
.java:145) 
     at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProje 
ct(LifecycleModuleBuilder.java:84) 
     at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProje 
ct(LifecycleModuleBuilder.java:59) 
     at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBu 
ild(LifecycleStarter.java:183) 
     at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(Lifecycl 
eStarter.java:161) 
     at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320) 
     at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156) 
     at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537) 
     at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196) 
     at org.apache.maven.cli.MavenCli.main(MavenCli.java:141) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. 
java:39) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces 
sorImpl.java:25) 
     at java.lang.reflect.Method.invoke(Method.java:597) 
     at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Laun 
cher.java:290) 
     at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.jav 
a:230) 
     at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(La 
uncher.java:409) 
     at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java: 
352) 
Caused by: org.apache.maven.plugin.MojoExecutionException: No online devices att 
ached. 
     at com.jayway.maven.plugins.android.AbstractAndroidMojo.doWithDevices(Ab 
stractAndroidMojo.java:625) 
     at com.jayway.maven.plugins.android.AbstractAndroidMojo.deployApk(Abstra 
ctAndroidMojo.java:527) 
     at com.jayway.maven.plugins.android.AbstractAndroidMojo.deployBuiltApk(A 
bstractAndroidMojo.java:570) 
     at com.jayway.maven.plugins.android.standalonemojos.DeployMojo.execute(D 
eployMojo.java:48) 
     at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(Default 
BuildPluginManager.java:101) 
     at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor 
.java:209) 
     ... 19 more 
[ERROR] 
[ERROR] Re-run Maven using the -X switch to enable full debug logging. 
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please rea 
d the following articles: 
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionE 
xception 

다음은 내 android-maven-plugin-emulator-start.vbs 파일입니다.

Dim oShell 
Set oShell = WScript.CreateObject("WScript.shell") 
oShell.run "C:\Windows\system32\cmd.exe /X /C START /SEPARATE ""AndroidMavenPlugin-AVDDefault"" D:\SDK\tools\emulator.exe -avd Default" 

여기 내 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.sample</groupId> 
    <artifactId>SampleProject</artifactId> 
    <version>1.0</version> 
    <packaging>apk</packaging> 
    <name>SampleProject</name> 
    <properties> 
     <platform.version>2.3.3</platform.version> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 

    <dependencies> 
     <dependency> 
      <groupId>com.google.android</groupId> 
      <artifactId>android</artifactId> 
      <version>${platform.version}</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>com.googlecode.androidannotations</groupId> 
      <artifactId>androidannotations</artifactId> 
      <version>2.5.1</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>com.googlecode.androidannotations</groupId> 
      <artifactId>androidannotations</artifactId> 
      <classifier>api</classifier> 
      <version>2.5.1</version> 
     </dependency> 
    </dependencies> 
    <build> 
     <plugins> 
      <plugin> 
       <groupId>com.jayway.maven.plugins.android.generation2</groupId> 
       <artifactId>android-maven-plugin</artifactId> 
       <version>3.3.2</version> 
       <configuration> 
        <sdk> 
        <!-- platform or api level (api level 4 = platform 1.6) --> 
        <platform>16</platform> 
        <path>${env.ANDROID_HOME}/</path> 
       </sdk> 
       <emulator> 
        <avd>21</avd> 
        <options>-no-skin</options> 
       </emulator> 
        <undeployBeforeDeploy>false</undeployBeforeDeploy> 
       </configuration> 
       <extensions>true</extensions> 
      </plugin> 
      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>2.5.1</version> 
       <configuration> 
        <source>1.6</source> 
        <target>1.6</target> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
</project> 
+0

pom.xml을 게시 할 수 있습니까? – yorkw

+0

@yorkw : POM.xml을 업데이트했습니다. – theJava

답변

4

실행 mvn android:emulator-startmvn android:deploy 전에이다. Maven 플러그인은 존재하지 않는 에뮬레이터에 배포 할 수 없습니다. 또한 배포하기 전에 에뮬레이터가 부팅 될 때까지 기다려야합니다.

adb devices을 사용하여 컴퓨터에 연결된 활성 안드로이드 장치를 확인하십시오.

5

할 수 있습니다 중 하나 mvn android:deploy을 실행하거나, 자동으로 에뮬레이터를 시작하고 배포하기 전에 기다리는 다음과 같은 구성을 사용하여 직접 mvn android:deploy을 실행하기 전에 (디팍는 그의 대답에 언급 된 것처럼) 수동 에뮬레이터를 실행 :

<plugin> 
    <groupId>com.jayway.maven.plugins.android.generation2</groupId> 
    <artifactId>android-maven-plugin</artifactId> 
    <version>3.3.2</version> 
    <configuration> 
     ... ... 
     <emulator> 
      <avd>21</avd> 
      <!-- Wait for emulator starting (3 minutes) --> 
      <wait>180000</wait> 
      <options>-no-skin</options> 
     </emulator> 
     ... ... 
    </configuration> 
    <extensions>true</extensions> 
</plugin> 
관련 문제