2013-06-02 54 views
3

我嘗試將我的項目移至cloudbees配置項。Cloudbees with android and maven-android-plugin

android SDK由cloudbees提供。它位於道路的/ opt /安卓/ Android的SDK-linux的

但不幸的是,我得到了與Maven的Android的插件3.6.0以下堆棧跟蹤:

message : Failed to execute goal com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.6.0:generate-sources (default-generate-sources) on project wizardpager: Execution default-generate-sources of goal com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.6.0:generate-sources failed: Invalid SDK: Platform/API level 16 not available. This command should give you all you need: 
/opt/android/android-sdk-linux/tools/android update sdk --no-ui --obsolete --force 
cause : Execution default-generate-sources of goal com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.6.0:generate-sources failed: Invalid SDK: Platform/API level 16 not available. This command should give you all you need: 
/opt/android/android-sdk-linux/tools/android update sdk --no-ui --obsolete --force 
Stack trace : 
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.6.0:generate-sources (default-generate-sources) on project wizardpager: Execution default-generate-sources of goal com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.6.0:generate-sources failed: Invalid SDK: Platform/API level 16 not available. This command should give you all you need: 
/opt/android/android-sdk-linux/tools/android update sdk --no-ui --obsolete --force 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:225) 
    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:320) 
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156) 
    at org.jvnet.hudson.maven3.launcher.Maven3Launcher.main(Maven3Launcher.java:79) 
    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:601) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:329) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:239) 
    at org.jvnet.hudson.maven3.agent.Maven3Main.launch(Maven3Main.java:158) 
    at hudson.maven.Maven3Builder.call(Maven3Builder.java:98) 
    at hudson.maven.Maven3Builder.call(Maven3Builder.java:64) 
    at hudson.remoting.UserRequest.perform(UserRequest.java:118) 
    at hudson.remoting.UserRequest.perform(UserRequest.java:48) 
    at hudson.remoting.Request$2.run(Request.java:326) 
    at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72) 
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:166) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:722) 
Caused by: org.apache.maven.plugin.PluginExecutionException: Execution default-generate-sources of goal com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.6.0:generate-sources failed: Invalid SDK: Platform/API level 16 not available. This command should give you all you need: 
/opt/android/android-sdk-linux/tools/android update sdk --no-ui --obsolete --force 
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:110) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209) 
    ... 27 more 
Caused by: com.jayway.maven.plugins.android.InvalidSdkException: Invalid SDK: Platform/API level 16 not available. This command should give you all you need: 
/opt/android/android-sdk-linux/tools/android update sdk --no-ui --obsolete --force 
    at com.jayway.maven.plugins.android.AndroidSdk.invalidSdkException(AndroidSdk.java:100) 
    at com.jayway.maven.plugins.android.AndroidSdk.<init>(AndroidSdk.java:78) 
    at com.jayway.maven.plugins.android.AbstractAndroidMojo.getAndroidSdk(AbstractAndroidMojo.java:1150) 
    at com.jayway.maven.plugins.android.phase01generatesources.GenerateSourcesMojo.generateR(GenerateSourcesMojo.java:461) 
    at com.jayway.maven.plugins.android.phase01generatesources.GenerateSourcesMojo.execute(GenerateSourcesMojo.java:195) 
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101) 
    ... 28 more 
channel stopped 
Finished: FAILURE 

看來,平臺/ API級別16不可用,但情況並非如此。我檢查了。

我也使用從命令行參數但: 乾淨安裝-Pstandard -X -Dandroid.sdk.path = /選擇/機器人/ Android的SDK Linux的-Dandroid.sdk.platform = 16

任何建議將不勝感激。

回答

1

你有沒有運行:

/opt/android/android-sdk-linux/tools/android update sdk --no-ui --obsolete --force --filter platform-tool,tool,android-16 

Android SDK中22具有不同的文件夾結構,Maven的Android的插件3.6.0反映了這種變化(https://code.google.com/p/maven-android-plugin/wiki/Changelog)。

更新Android SDK工具並再次更新Android平臺對我來說也有訣竅。

+1

謝謝,我認爲是正確的事情要做,但不幸的是我無法升級它,因爲android sdk的位置是由cloudbees提供的,它是隻讀的:(我打開了以下請求https:// cloudbees。 zendesk.com/requests/10474 – atali

1

最近修復了。 Cloudbees將SDK更新到22,現在一切正常。

R22已經發布。您還應該將Android jenkins插件 升級到2.10。