0

我刚开始在 Android Studio中将 DeployGate与我的 Android 应用程序一起使用,我想使用gradle 插件来上传我的新版本(我认为是为了这个,还是我误解了它?)。

我终于通过修改后的 build.gradle (Module: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在终端中执行命令时,它是BUILD FAILED。(我对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 中,但我认为它具有正确的 gradle 版本:

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

那么这里有什么问题呢?还是我做错了什么?我应该如何将应用程序自动上传到 DeployGate?感谢你的回答。

4

1 回答 1

1

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

Gradle 包装器是启动 Gradle 构建的首选方式,它允许您为每个项目运行特定版本的 Gradle。使用包装器,您构建项目所需要做的就是:

  1. 签出存储库
  2. gradlew

就这样。您甚至不需要预先安装 Gradle,包装器会处理所有事情,因此您可以在任何地方构建应用程序并轻松迁移到持续集成中。

于 2015-09-15T00:27:51.833 回答