2015-09-15 12 views
23

Tak, właśnie zaktualizowany do wersji Android Studio 1.4 Beta 4 i problemy z budowaniem wersji wydania. Mogę zbudować grzywnę za debugowanie. Ten błąd pojawia się:Android: ExternalSystemException: indeks String poza zakresem: -130 wersja dla budynku

ExternalSystemException: String index out of range: -130 

Po dalszej inspekcji, widzę to:

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) 

Jakieś pomysły? Próbowałem już z Gradle 2.3 - 2.7 i zawsze otrzymuję ten błąd budując kompilację wydania.

build.gradle z modułu głównego:

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:[email protected]') { 
    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:[email protected]' 
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') 
} 
+0

Możesz opublikować plik build.gradle (stripping żadnych kluczy itp) –

+0

Zaktualizowane w/build.gradle z modułu głównego –

+0

można spróbować uruchamiając Gradle kompilacji z wiersza poleceń, by zobaczyć, czy jest to problem z AS? –

Odpowiedz

0

Więc powróciła do Android Studio 1.3 i problem odszedł.

3

miałem ten sam problem z Android Studio 1.4 produkcji w dniu 28 września 2015 r Co zrobiłem było:

  1. zaczął budować na głównej Gradle Script - który stworzył konfigurację Uruchom w menu.

  2. Edytowano konfigurację uruchamiania, dodając ": app: assembleRelease" w wierszu parametrów skryptu. i zaczęło to.

  3. Gramatura pokazała mi, że brakuje tłumaczenia w głównym pliku strings.xml.

Po ustaleniu tego. Wygeneruj podpisany plik APK zakończył się bez problemu.

51

Jeśli używasz Android Studio, wybranie konsoli Gradle wyświetli problem. W moim przypadku były to duplikaty identyfikatorów textView, które spowodowały ten błąd.

+0

To jest rozwiązanie! Sprawdź konsolę Gradle. – wooohoh

+0

Co za głupio dwuznaczny błąd dla tak prostego problemu ... –

+0

co to są identyfikatory textView – SAndroidD

1

miałem ten sam problem, ale z tego błędu:

ExternalSystemException: String index out of range: -119 

Moim problemem było to, że w edytorze strun zapomniałem ustawić zmienną domyślną w moim tłumaczeniu, po dodaniu go, problem został rozwiązany.

Mam nadzieję, że pomoże!

29

Pracował Dodając to w build.gradle

lintOptions { 
     checkReleaseBuilds false 
    } 
+1

Spowoduje to usunięcie kontroli lint, ale nie rozwiąże głównej przyczyny problemy. Prawdopodobnie najlepiej jest rozwiązać błędy, patrząc na konsolę gradle. Przynajmniej spójrz na błędy i osądź, czy warto je naprawić :) –

+0

to działa, ale czy możesz wyjaśnić to nieco. jaki był problem i dlaczego działa –

+0

Tak, to zadziała ... ten kod po prostu usuwa sprawdzanie lint w wersji release. lepiej musisz rozwiązać błędy przed wygenerowaniem pliku APK. czasami wydaje się to trudne dlatego dodałem te dwie linie w build.gradle ... :) –

6

Mój błąd jest

ExternalSystemException: String index out of range:-

Moja aplikacja wsparcie język turecki i angielski. Mój angielski strings.xml zawiera

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

i mój turecki strings.xml nie zawiera

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

kiedy dodać <string name="hello_world">Bla bla!</string> do tureckiego strings.xml złożyć problem rozwiązany.

Uwaga: Proszę spojrzeć Android przez studio Gradle konsolę enter image description here

+0

Proszę spojrzeć na Gradle Console w Studio Studio, nie pokazałem błędów kompilacji. – Borzh

-2

mam ten sam problem. moja wersja Android Studio to ver2.1.1

Moja strings.xml zawiera

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

potem przejść do następnego rachunku. problem rozwiązany.

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

To nie rozwiązuje problemu z pytaniem –

+0

Czy wiesz, że kluczem jest to pytanie? – GeekHades

0

Chociaż jest to stary wątek, jednak poniższe informacje mogą być przydatne dla niektórych osób. I był już nieco inny komunikat (ale podobny, googlowania na następującym komunikatem przekierowuje mnie do tego wątku.)

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

Dla mnie problemem był string.xml brakowało nazwę dla zasobu strun jak wspomniano poniżej .

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

Dodanie prawidłowej nazwy zasobu rozwiązało problem.

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