Gradle Error:字符串索引超出范围:0

sco*_*yab 15 android gradle android-gradle-plugin

试图用Gradle编译一个Android项目并得到一个奇怪的错误.当我运行./gradlew tasks --stacktrace.尝试干净的重建,回购的新鲜克隆,不同的分支,同事们能够建立aok.

寻找要检查/试图解决这个问题的想法.

*更新:恢复为Gradle 2.11,com.android.tools.build:gradle:2.2.0-alpha6似乎已修复此问题.*

这是堆栈:

FAILURE: Build failed with an exception.

* What went wrong:
String index out of range: 0

* Try:
Run with --info or --debug option to get more log output.

* Exception is:
java.lang.StringIndexOutOfBoundsException: String index out of range: 0
        at org.gradle.internal.reflect.JavaReflectionUtil.toMethodName(JavaReflectionUtil.java:196)
        at org.gradle.internal.reflect.JavaReflectionUtil.writeablePropertyIfExists(JavaReflectionUtil.java:156)
        at org.gradle.initialization.ProjectPropertySettingBuildLoader$CachingPropertyApplicator.configureProperty(ProjectPropertySettingBuildLoader.java:99)
        at org.gradle.initialization.ProjectPropertySettingBuildLoader.addPropertiesToProject(ProjectPropertySettingBuildLoader.java:76)
        at org.gradle.initialization.ProjectPropertySettingBuildLoader.setProjectProperties(ProjectPropertySettingBuildLoader.java:53)
        at org.gradle.initialization.ProjectPropertySettingBuildLoader.load(ProjectPropertySettingBuildLoader.java:49)
        at org.gradle.initialization.NotifyingSettingsLoader.findAndLoadSettings(NotifyingSettingsLoader.java:35)
        at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:118)
        at org.gradle.initialization.DefaultGradleLauncher.access$200(DefaultGradleLauncher.java:32)
        at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:98)
        at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:92)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:63)
        at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:92)
        at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:83)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:99)
        at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
        at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:48)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:30)
        at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:81)
        at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:46)
        at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:52)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
        at org.gradle.util.Swapper.swap(Swapper.java:38)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.health.DaemonHealthTracker.execute(DaemonHealthTracker.java:40)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:60)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:72)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.health.HintGCAfterBuild.execute(HintGCAfterBuild.java:41)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
        at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
        at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:237)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54)
        at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40)
Run Code Online (Sandbox Code Playgroud)

系统细节:

Gradle 2.14.1

制作时间:2016-07-18 06:38:37 UTC修订:d9e2113d9fb05a5caabba61798bdb8dfdca83719

Groovy:2.4.4 Ant:2015年6月29日编译的Apache Ant(TM)版本1.9.6 JVM:1.8.0_101(Oracle Corporation 25.101-b13)操作系统:Mac OS X 10.11.6 x86_64

Sam*_*eni 20

合并冲突对我造成了这种情况.冲突就在gradle.properties.这些线条<<<<<<< HEAD是我想的原因.如果消息更具描述性,那将会很有帮助.


kor*_*ral 7

=是键值分隔符。如果要在属性文件中拆分部分,可以使用注释:

foo.bar=foo
#=======
foo.baz=baz
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参见:属性文件格式


sco*_*yab 5

我通过删除全局gradle.properties文件中的所有条目找到了问题 ~/.gradle/gradle.properties

因此,我认为以前的文件中一定有gradle不喜欢的东西。复制并粘贴了几个部分后,我发现这是罪魁祸首

=======

我一直在======用来分割gradle属性的各个部分(我定义了开源和商业密钥/属性)。

在gradle 2.11的早期版本中,这没问题并且可以很好地编译,但是在2.14.1上,您将得到隐式错误“字符串索引超出范围:0”。