Android:ExternalSystemException:字符串索引超出范围:-130构建版本

时间:2015-09-15 00:19:13

标签: android gradle build release

因此,刚刚更新到Android Studio 1.4 Beta 4并且无法构建发布版本。我可以构建一个调试版本。这是我得到的错误:

ExternalSystemException: String index out of range: -130

经过进一步检查,我看到了:

String index out of range: -130
com.intellij.openapi.externalSystem.model.ExternalSystemException: String index out of range: -130
at org.jetbrains.plugins.gradle.service.project.GradleExecutionHelper.execute(GradleExecutionHelper.java:223)
at com.android.tools.idea.gradle.invoker.GradleTasksExecutor.invokeGradleTasks(GradleTasksExecutor.java:400)
at com.android.tools.idea.gradle.invoker.GradleTasksExecutor.run(GradleTasksExecutor.java:221)
at com.intellij.openapi.progress.impl.CoreProgressManager$TaskRunnable.run(CoreProgressManager.java:563)
at com.intellij.openapi.progress.impl.CoreProgressManager$2.run(CoreProgressManager.java:152)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:452)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:402)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:54)
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:137)
at com.intellij.openapi.progress.impl.ProgressManagerImpl$1.run(ProgressManagerImpl.java:126)
at com.intellij.openapi.application.impl.ApplicationImpl$8.run(ApplicationImpl.java:400)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
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:745)
at org.jetbrains.ide.PooledThreadExecutor$1$1.run(PooledThreadExecutor.java:56)

有什么想法吗?我已经尝试使用Gradle 2.3 - 2.7并且总是在构建发布版本时遇到此错误。

来自主模块的build.gradle:

import java.util.regex.Pattern

buildscript {
repositories {
    maven { url 'https://maven.fabric.io/public' }
    mavenCentral()
}

dependencies {
    classpath 'io.fabric.tools:gradle:1.+'
    classpath 'com.jakewharton.sdkmanager:gradle-plugin:0.12.0'
}
}

apply plugin: 'android-sdk-manager'
apply plugin: 'com.android.application'
// This does not break the build when Android Studio is missing the JRebel for     Android plugin.
apply plugin: 'com.zeroturnaround.jrebel.android'
apply plugin: 'io.fabric'

repositories {
maven { url 'https://maven.fabric.io/public' }
}


android {
signingConfigs {
    config {
        keyAlias 'XXX'
        keyPassword 'XXX'
        storeFile file('../signing/keystore.jks')
        storePassword 'XXX'
    }
}
compileSdkVersion 22
buildToolsVersion '22.0.1'
defaultConfig {
    applicationId "com.coffeemeetsbagel"
    minSdkVersion 16
    targetSdkVersion 22
    versionCode 605
    versionName '2.0.6.0'
    signingConfig signingConfigs.config
    multiDexEnabled true
}

productFlavors {
    lollipop {
        minSdkVersion 21
    }

    everything {
        minSdkVersion 16
    }
}
buildTypes {
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        signingConfig signingConfigs.config
        debuggable false
    }
    debug {
        debuggable true
    }
    superuser.initWith(release)
    superuser {
        debuggable true
        minifyEnabled false
    }
}

packagingOptions {
    exclude 'META-INF/LICENSE.txt'
    exclude 'META-INF/LICENSE'
    exclude 'META-INF/license'
    exclude 'META-INF/license.txt'
    exclude 'META-INF/NOTICE'
    exclude 'META-INF/NOTICE.txt'
    exclude 'META-INF/notice'
    exclude 'META-INF/notice.txt'
    exclude 'META-INF/DEPENDENCIES'
    exclude 'META-INF/DEPENDENCIES.txt'
}

dexOptions {
    javaMaxHeapSize "4g"
}
}

dependencies {
compile files('libs/commons-validator-1.4.1.jar')
compile files('libs/com.kontagent.android.sdk.jar')
compile files('libs/urbanairship-lib-4.0.4.jar')
compile files('libs/apsalar.jar')
compile('com.crashlytics.sdk.android:crashlytics:2.2.3@aar') {
    transitive = true
}
compile 'com.github.chrisbanes.photoview:library:1.2.3'
compile 'com.facebook.android:facebook-android-sdk:4.1.0'
compile 'com.android.support:support-v4:22.2.1'
compile 'com.android.support:cardview-v7:22.2.1'
compile 'com.squareup.okhttp:okhttp-urlconnection:2.0.0'
compile 'com.squareup.okhttp:okhttp:2.4.0'
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.google.code.gson:gson:2.3'
compile 'com.google.android.gms:play-services-ads:7.5.0'
compile 'com.google.android.gms:play-services-analytics:7.5.0'
compile 'com.google.android.gms:play-services-gcm:7.5.0'
compile 'com.google.android.gms:play-services-base:7.5.0'
compile 'com.google.android.gms:play-services-location:7.5.0'
compile 'com.firebase:firebase-client-android:2.2.0'
compile 'com.facebook.shimmer:shimmer:0.1.0@aar'
compile 'com.balysv:material-ripple:1.0.2'
compile 'io.branch.sdk.android:library:1.8.8'
compile 'com.facebook.device.yearclass:yearclass:1.0.1'
compile 'com.appyvet:materialrangebar:1.0'
compile 'com.android.support:multidex:1.0.1'
compile 'com.adobe.creativesdk:image:4.0.0'
compile 'com.android.support:recyclerview-v7:22.2.1'
compile 'com.android.support:appcompat-v7:22.2.1'
compile 'com.android.support:design:22.2.1'
compile project(':core')
compile project(':layouts')
compile project(':volley')
}

8 个答案:

答案 0 :(得分:51)

如果您正在使用Android Studio,选择Gradle控制台会显示问题所在。就我而言,导致此错误的是重复的textView标识符。

答案 1 :(得分:29)

通过在build.gradle中添加它来工作

 lintOptions {
        checkReleaseBuilds false
    }

答案 2 :(得分:6)

我的错误是

  

ExternalSystemException:字符串索引超出范围: -

我的应用支持土耳其语和英语。我的英文strings.xml包含

 <string name="hello_world">Hello world!</string>

我的土耳其strings.xml不包含

<string name="hello_world">Bla bla!</string>

当我将<string name="hello_world">Bla bla!</string>添加到土耳其strings.xml文件时,问题就解决了。

注意:请查看Android Studio的Gradle控制台 enter image description here

答案 3 :(得分:3)

我在2015年9月28日的Android Studio 1.4 Build遇到了同样的问题 我做的是:

  1. 开始构建主gradle脚本 - 在菜单中创建了一个运行配置。

  2. 通过添加&#34;:app:assembleRelease&#34;编辑运行配置在脚本参数行上。并开始了。

  3. gradle构建向我显示我在主strings.xml文件中缺少翻译。

  4. 修好后。生成签名APK完成没有问题。

答案 4 :(得分:1)

我遇到了同样的问题,但是出现了这个错误:

ExternalSystemException: String index out of range: -119

我的问题是在字符串编辑器中我忘了在我的翻译中设置一个默认变量,在添加之后,问题就解决了。

希望它有所帮助!

答案 5 :(得分:0)

所以我又回到了Android Studio 1.3,问题就消失了。

答案 6 :(得分:0)

虽然这是一个旧线程,但以下信息可能对某些人有用。我得到了一个不同的消息(但类似的,谷歌搜索以下消息重定向到这个线程。)

Execution failed for task ':app:mergeReleaseResources'.
> String index out of range: 0

对我来说问题是string.xml缺少字符串资源的名称,如下所述。

<string name="">Some strings...</string>

添加适当的资源名称解决了这个问题。

<string name="some_string">Some strings...</string>

答案 7 :(得分:-2)

我有同样的问题。我的Android Studio版本是ver2.1.1

我的strings.xml包含

<string name="title_connecting">connecting...</string>

然后我改为以下声明。问题解决了。

<string name="title_connecting">connecting..</string>