2015-08-15 106 views
0

我刚开始在Android Studio中使用我的Android应用程序DeployGate,并且想要使用gradle plugin来上传我的新版本(我认为是这样,还是我误解了它? )。使用deployGate gradle插件构建Android Studio项目

我终于实现了我的项目建设取得成功,我修改的build.gradle(模块:APP):

apply plugin: 'deploygate' 
apply plugin: 'com.android.application' 

deploygate { 
    userName = "[myUsername]" //yes, I replaced it with my own 
    token = "[myAPIKey]"  // also 
    apks { 
     release { 
      sourceFile = file("C:\\AndroidStudioProjects\\MyApp\\app\\app-release.apk") 
     } 

     debug { 
      sourceFile = file("C:\\AndroidStudioProjects\\MyApp\\app\\build\\outputs\\apk\\app-debug.apk") 

      //Below is optional 
      //message = "test upload2 sample" 
      //visibility = "public" 
      //distributionKey = "[distribution_key]" 
      //releaseNote = "release note sample" 
     } 
    } 
} 

android { 
    compileSdkVersion 23 
    buildToolsVersion "22.0.1" 

    defaultConfig { 
     applicationId "bendaf.myapp" 
     minSdkVersion 18 
     targetSdkVersion 23 
     versionCode 13 
     versionName "1.2.1" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile 'com.android.support:appcompat-v7:23.0.0' 
    compile 'com.deploygate:sdk:3.1' 
} 

但是当我尝试在终端执行命令gradle uploadDeployGate它最高审计机关构建失败。 (?我不是太有经验丰富的gradle,所以我在做是正确的)

我的堆栈跟踪是:

* Exception is:    
    org.gradle.api.GradleScriptException: A problem occurred evaluating project ':app'. 
     at  org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:54) 
     at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl.apply(DefaultScriptPluginFactory.java:190) 
     at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildScriptProcessor.java:39) 
     at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildScriptProcessor.java:26) 
     at org.gradle.configuration.project.ConfigureActionsProjectEvaluator.evaluate(ConfigureActionsProjectEvaluator.java:34) 
     at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:55) 
     at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:521) 
     at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:82) 
     at org.gradle.configuration.DefaultBuildConfigurer.configure(DefaultBuildConfigurer.java:31) 
     at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:129) 
     at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:106) 
     at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:86) 
     at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:80) 
     at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:33) 
     at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:24) 
     at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:36) 
     at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26) 
     at org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:51) 
     at org.gradle.internal.Actions$RunnableActionAdapter.execute(Actions.java:171) 
     at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:237) 
     at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:210) 
     at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:35) 
     at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:24) 
     at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:206) 
     at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:169) 
     at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33) 
     at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22) 
     at org.gradle.launcher.Main.doAction(Main.java:33) 
     at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45) 
     at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:54) 
     at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:35) 
     at org.gradle.launcher.GradleMain.main(GradleMain.java:23) 
Caused by: org.gradle.api.internal.plugins.PluginApplicationException: Failed to apply plugin [id 'com.android.application'] 
     at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction.applyPlugin(DefaultObjectConfigurationAction.java:117) 
     at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction.access$200(DefaultObjectConfigurationAction.java:36) 
     at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction$3.run(DefaultObjectConfigurationAction.java:80) 
     at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction.execute(DefaultObjectConfigurationAction.java:131) 
     at org.gradle.api.internal.project.AbstractPluginAware.apply(AbstractPluginAware.java:37) 
     at org.gradle.api.Project$apply$0.call(Unknown Source) 
     at org.gradle.api.internal.project.ProjectScript.apply(ProjectScript.groovy:34) 
     at org.gradle.api.Script$apply$0.callCurrent(Unknown Source) 
     at build_78pi66j0mnhjns6vp3krggobhd.run(C:\AndroidStudioProjects\VivagoDatatransmission\app\build.gradle:25) 
     at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:52) 
     ... 31 more   
Caused by: org.gradle.tooling.BuildException: Gradle version 2.2 is required. Current version is 2.1. If using the gradle wrapper, try editing the distributionUrl in C:\An 
droidStudioProjects\VivagoDatatransmission\gradle\wrapper\gradle-wrapper.properties to gradle-2.2-all.zip 
     at com.android.build.gradle.BasePlugin.checkGradleVersion(BasePlugin.groovy:436) 
     at com.android.build.gradle.BasePlugin.configureProject(BasePlugin.groovy:265) 
     at com.android.build.gradle.BasePlugin$_apply_closure1.doCall(BasePlugin.groovy:252) 
     at com.android.build.gradle.BasePlugin$_apply_closure1.doCall(BasePlugin.groovy) 
     at com.android.build.gradle.internal.profile.SpanRecorders$2.call(SpanRecorders.groovy:52) 
     at com.android.builder.profile.ThreadRecorder$1.record(ThreadRecorder.java:48) 
     at com.android.build.gradle.internal.profile.SpanRecorders.record(SpanRecorders.groovy:54) 
     at com.android.build.gradle.BasePlugin.apply(BasePlugin.groovy:251) 
     at com.android.build.gradle.AppPlugin.super$2$apply(AppPlugin.groovy) 
     at com.android.build.gradle.AppPlugin.apply(AppPlugin.groovy:66) 
     at com.android.build.gradle.AppPlugin.apply(AppPlugin.groovy) 
     at org.gradle.api.internal.plugins.DefaultPluginContainer.providePlugin(DefaultPluginContainer.java:188) 
     at org.gradle.api.internal.plugins.DefaultPluginContainer.addPluginInternal(DefaultPluginContainer.java:137) 
     at org.gradle.api.internal.plugins.DefaultPluginContainer.apply(DefaultPluginContainer.java:103) 
     at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction.applyPlugin(DefaultObjectConfigurationAction.java:115) 
     ... 40 more   

根据错误消息的问题是在我的gradle-wrapper.properties,但它我认为:

distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip 

所以这里有什么问题?或者我做错了什么?我应该如何将应用程序自动上传到DeployGate? 谢谢,为答案。

+1

看起来你正在使用'gradle'本身,所以它不会读取gradle-wrapper.properties。在项目目录中尝试'gradlew'(Gradle wrapper)。 – tnj

+0

谢谢,我执行了'gradlew uploadDeployGate'命令并且它正在工作!你能解释一下你的答案中两个命令之间的区别是什么,所以我可以接受它?谢谢! :) – bendaf

+0

我的荣幸。很高兴听到它解决。 :) – tnj

回答

1

您正在运行全局安装的gradle命令,它不尊重您编辑的gradle-wrapper.properties。相反,您需要运行gradlew命令。

Gradle包装器是the preferred way of starting a Gradle build,它允许您为每个项目运行特定版本的Gradle。随着包装,所有你需要做的构建项目是:

  1. 结帐库
  2. 运行gradlew

这就是全部。你甚至不需要事先安装Gradle,这个包装器负责处理所有事情,所以你可以在任何地方构建你的应用程序并轻松地迁移到持续集成中。

相关问题