2015-09-15 23 views
23

因此,剛更新到Android Studio 1.4 Beta 4並且在構建版本構建時遇到問題。我可以構建一個調試版本。這是錯誤我得到:Android:ExternalSystemException:字符串索引超出範圍:-130構建版本

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:[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

您可以發佈您的build.gradle文件(剔除任何按鍵等) –

+0

更新W的主模塊 –

+0

你可以嘗試在命令行中運行gradle這個編譯/的build.gradle只是爲了看它是否是一個問題與AS? –

回答

0

於是我又恢復到Android 1.3工作室和問題走了。

3

我有過Android Studio 1.4構建了同樣的問題在2015年9月28日 我所做的是:

  1. 主gradle這個腳本啓動構建 - 在菜單中創建一個運行配置。

  2. 通過在腳本參數行中添加「:app:assembleRelease」來編輯運行配置。並開始它。

  3. gradle build向我展示了我在主strings.xml文件中缺少翻譯。

修復此問題後。生成簽名APK完成沒有問題。

51

如果您使用Android Studio,選擇Gradle控制檯會告訴您問題出在哪裏。在我的情況下,它是導致此錯誤的重複textView標識符。

+0

這是解決方案!檢查Gradle控制檯。 – wooohoh

+0

對於這樣一個簡單的問題,這是多麼模糊不清的錯誤...... –

+0

什麼是textView標識符 – SAndroidD

1

我有同樣的問題,但與此錯誤:

ExternalSystemException: String index out of range: -119 

我的問題是,在字符串編輯我忘了一個默認的變量設置成我的翻譯,添加之後,問題解決了。

希望它有幫助!

29

曾任職通過的build.gradle加入這個

lintOptions { 
     checkReleaseBuilds false 
    } 
+1

這將刪除lint檢查,但不會解決根本原因的問題。通過查看Gradle控制檯來解決錯誤可能是最好的。至少看看這些錯誤,並判斷它們是否值得修復:) –

+0

它的工作原理,但請你解釋一下。有什麼問題,爲什麼它的工作 –

+0

是的,它會工作..這個代碼只是在發佈版本中刪除lint檢查。更好的是你必須在生成apk之前解決錯誤。有些時候,似乎很難這就是爲什麼我在build.gradle中添加這兩行...... :) –

6

我的錯誤是

ExternalSystemException: String index out of range:-

我的應用程序支持土耳其語和英語。我的英語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中的搖籃控制檯 enter image description here

+0

請看Android Studio的Gradle Console確實顯示編譯錯誤。 – Borzh

-2

我有同樣的問題。我的Android Studio版本是ver2.1.1

我的strings.xml包含

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

然後我換到下面的語句。問題解決了。

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

這不能解決問題 –

+0

的問題你知道,關鍵在於這個問題嗎? – GeekHades

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>