2015-07-02 5 views
8

Мой андроида проект имеет только aidl файл, структура проекта, как показано ниже:Maven построить андроида проекта: указать местоположение файла aidl

MyProject/ 
    src/ 
    main/ 
     com.my.aidl/ 
       IMyService.aidl 
    pom.xml 

Я строю свой андроид проект с Maven. Мой pom использует dexguard-maven-plugin который является расширением android-maven-plugin.

В конфигурации плагина я явно указал каталог источника helpl файла & каталог сгенерированного java-файла.

<build> 
    <plugins> 
     <plugin> 
      <groupId>com.saikoa.dexguard.maven</groupId> 
      <artifactId>dexguard-maven-plugin</artifactId> 
      <configuration> 
       <aidlSourceDirectory> 
        ${project.basedir}/src/main/com/my/aidl 
       </aidlSourceDirectory> 

       <genDirectoryAidl> 
        ${project.build.directory}/generated-sources/aidl/main/com/my/aidl 
       </genDirectoryAidl> 
      </configuration> 
      <extensions>true</extensions> 
     </plugin> 
    </plugins> 
</build> 

Но после того, как я бегу mvn clean install -e я получил следующий след ошибки:

[ERROR] Failed to execute goal com.saikoa.dexguard.maven:dexguard-maven-plugin:6.1.18:generate-sources (default-generate-sources) on project MyProject: Execution default-generate-sources of goal com.saikoa.dexguard.maven:dexguard-maven-plugin:6.1.18:generate-sources failed. NullPointerException -> [Help 1] 
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.saikoa.dexguard.maven:dexguard-maven-plugin:6.1.18:generate-sources (default-generate-sources) on project MyProject: Execution default-generate-sources of goal com.saikoa.dexguard.maven:dexguard-maven-plugin:6.1.18:generate-sources failed. 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:224) 
    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.buildProject(LifecycleModuleBuilder.java:84) 
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59) 
    at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) 
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161) 
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:317) 
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:152) 
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:555) 
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:214) 
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:158) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) 
Caused by: org.apache.maven.plugin.PluginExecutionException: Execution default-generate-sources of goal com.saikoa.dexguard.maven:dexguard-maven-plugin:6.1.18:generate-sources failed. 
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:115) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208) 
    ... 19 more 
Caused by: java.lang.NullPointerException 
    at java.io.File.<init>(File.java:334) 
    at com.jayway.maven.plugins.android.phase01generatesources.GenerateSourcesMojo.generateAidlFiles(GenerateSourcesMojo.java:1266) 
    at com.jayway.maven.plugins.android.phase01generatesources.GenerateSourcesMojo.execute(GenerateSourcesMojo.java:343) 
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:106) 
    ... 20 more 
[ERROR] 
[ERROR] Re-run Maven using the -X switch to enable full debug logging. 
[ERROR] 

Что не так?

ответ

4

Если бы подобный вопрос несколько месяцев назад, когда я помещал мой вызов, связанные aidl файлы в неправильном месте (я мигрировали формы Eclipse, ANT-студия Gradle) .Отель ссылку ниже помогли в моем случае:
how can I add the aidl file to Android studio (from the in-app billing example)
И официальный документ, связанные с что:
http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Project-Structure

1

В зависимости от вашего сообщения в журнале имеется nullexception. Я думаю, что каталог неправильный. Вы пытаетесь изменить genDirectoryAidl из «сгенерированных источников/aidl/main/com/my/aidl» в «сгенерированные источники/helpl /»? Возможно, если вы создадите каталог с именем «main/com/my/aidl», вы добьетесь успеха.

Надеюсь, что это сообщение может вам помочь.

0

Как я вижу, это исключение NullPointerException, возможно вызванное некоторыми нерешенными зависимостями. Here - это ссылка на аналогичную проблему. Также попробуйте повторно запустить maven с -X и показать нам вывод отладки.