Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Android: ExternalSystemException: индекс строки вне допустимого диапазона: выпуск сборки -130

Автор вопроса: Karim VarelaОтветов: 8

Итак, только что обновился до 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')
}
  • Можете ли вы опубликовать свой файл build.gradle (удалив любые ключи и т. д.) Andrew Breen 15.09.2015
  • Обновлен с помощью build.gradle из основного модуля. Karim Varela 15.09.2015
  • Можете ли вы попробовать запустить сборку gradle из командной строки, чтобы убедиться, что это проблема с AS? Andrew Breen 15.09.2015

buildandroidgradlerelease

Ответы

Ответ 1 · рейтинг 51 · David Wadge

Если вы используете Android Studio, выбор консоли Gradle покажет вам, в чем заключается проблема. В моем случае эта ошибка была вызвана дублированием идентификаторов textView.

Ответ 2 · рейтинг 29 · Jackson Chengalai

Сработало, добавив это в build.gradle

 lintOptions {
        checkReleaseBuilds false
    }

Ответ 3 · рейтинг 6 · ethemsulan

Моя ошибка

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> в файл Turkish strings.xml, проблема решена.

Примечание. Посмотрите консоль Gradle Android Studio

Ответ 4 · рейтинг 3 · Toma Velev

У меня была такая же проблема с Android Studio 1.4 Build 28 сентября 2015 г. Я сделал следующее:

  1. Начал сборку основного скрипта gradle - это создало конфигурацию запуска в меню.

  2. Отредактировал конфигурацию запуска, добавив ":app:assembleRelease" в строку параметров скрипта. и начал его.

  3. Сборка gradle показала мне, что у меня отсутствуют переводы в основном файле strings.xml.

После исправления этого. Создание подписанного APK завершено без проблем.

Ответ 5 · рейтинг 1 · Kokusho

У меня была такая же проблема, но с этой ошибкой:

ExternalSystemException: String index out of range: -119

Моя проблема заключалась в том, что в редакторе строк я забыл установить переменную по умолчанию в свой перевод, после ее добавления проблема была решена.

Надеюсь, поможет!

Ответ 6 · Karim Varela

Поэтому я вернулся к Android Studio 1.3, и проблема исчезла.

Ответ 7 · Paul

Хотя это старая тема, следующая информация может быть полезна для некоторых людей. Я получил немного другое сообщение (но похожее, поиск следующего сообщения в Google перенаправляет меня в эту ветку.)

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>

Ответ 8 · рейтинг -2 · Zach Chen

У меня такая же проблема. моя версия Android Studio ver2.1.1

Мой strings.xml содержит

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

затем я перехожу к следующему утверждению. проблема решена.

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы