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

时间:2016-08-03 07:57:27

标签: android gradle android-gradle

尝试使用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)

系统详情:

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

8 个答案:

答案 0 :(得分:8)

合并冲突对我造成了这一影响。冲突发生在gradle.properties中。我认为是<<<<<<< HEAD之类的行。如果该消息更具描述性,那将很有帮助。

答案 1 :(得分:5)

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

foo.bar=foo
#=======
foo.baz=baz

更多信息可在以下网址找到:properties file format

答案 2 :(得分:3)

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

因此,我的上一个文件中必定存在gradle不喜欢的内容。复制并粘贴几个部分后,我发现这是罪魁祸首

=======

我一直在使用======来拆分我的gradle属性的部分(我已经定义了开源和商业键/属性)。

在gradle 2.11的早期版本中,这是aok并且编译得很好但是在2.14.1上你得到了神秘的错误“String index out of range:0”。

答案 3 :(得分:2)

对我来说,问题是由于gradle.properties的SVN冲突造成的,如下所示: bin build.gradle gradle.properties gradle.properties.r91662 src build build.num gradle.properties.mine gradle.properties.r91979 tmp

有一次,我把gradle.properties作为svn解决,gradle build开始正常工作。

答案 4 :(得分:1)

这表示gradle.properties中存在一些错误的值,请删除无效的enteries。

答案 5 :(得分:0)

删除为我工作的~/.gradle/目录,当我将我的android工作室更新为Exception:String index out of range:0

时,Gradle 2.3.1

答案 6 :(得分:0)

检查您的findMyEl(String prefix, int maxEls),如果项目中包含已移除/不存在模块。

我在settings.gradle文件中仍然已经删除模块谎言<​​/ strong>。删除它解决了我的问题。

答案 7 :(得分:0)

检查你的文件,它可能是你有一个未解决的合并冲突,它在你的代码中添加了不需要的额外字符,比如 <===== head 或其他 git 语法在 github vscode 扩展的帮助下将有助于减少立即搜索并将您指向外国不需要的字符

删除 ~/.gradle/ 目录