2015-11-23 2 views
0

Я новичок в android, поэтому, пожалуйста, несите меня, если у вас вопрос о noob.Gradle восстанавливает штраф, но дает исключение при работе на устройстве

Gradle строит отлично, но я получаю это исключение при запуске моего приложения на устройстве.

Я просто пытаюсь поддерживать API с 21 по 23, и поэтому во время обновления до библиотек я попал в это исключение. Кажется, я не могу это разрешить. Пожалуйста, помогите!

**Exception** 

    FAILURE: Build failed with an exception. 

* What went wrong: 
Execution failed for task ':app:preDexDebug'. 
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1 

* Try: 
Run with --info or --debug option to get more log output. 

* Exception is: 
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:preDexDebug'. 
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69) 
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46) 
    at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35) 
    at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64) 
    at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58) 
    at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:42) 
    at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52) 
    at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53) 
    at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43) 
    at org.gradle.api.internal.AbstractTask.executeWithoutThrowingTaskFailure(AbstractTask.java:305) 
    at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.executeTask(AbstractTaskPlanExecutor.java:79) 
    at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:63) 
    at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:51) 
    at org.gradle.internal.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:64) 
Caused by: java.lang.RuntimeException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1 
    at com.android.ide.common.internal.WaitableExecutor.waitForTasksWithQuickFail(WaitableExecutor.java:116) 
    at com.android.ide.common.internal.WaitableExecutor$waitForTasksWithQuickFail$0.call(Unknown Source) 
    at com.android.build.gradle.tasks.PreDex.taskAction(PreDex.groovy:106) 
    at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:63) 
    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$IncrementalTaskAction.doExecute(AnnotationProcessingTaskFactory.java:235) 
    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:211) 
    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$IncrementalTaskAction.execute(AnnotationProcessingTaskFactory.java:222) 
    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:200) 
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80) 
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61) 
    ... 13 more 
Caused by: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1 
    at com.android.build.gradle.internal.process.GradleProcessResult.assertNormalExitValue(GradleProcessResult.java:42) 
    at com.android.builder.core.AndroidBuilder.preDexLibrary(AndroidBuilder.java:1296) 
    at com.android.builder.internal.compiler.PreDexCache.preDexLibrary(PreDexCache.java:122) 
    at com.android.builder.core.AndroidBuilder.preDexLibrary(AndroidBuilder.java:1248) 
    at com.android.builder.core.AndroidBuilder$preDexLibrary$5.call(Unknown Source) 
    at com.android.build.gradle.tasks.PreDex$PreDexTask.call(PreDex.groovy:150) 
    at com.android.build.gradle.tasks.PreDex$PreDexTask.call(PreDex.groovy) 
Caused by: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1 
    at org.gradle.process.internal.DefaultExecHandle$ExecResultImpl.assertNormalExitValue(DefaultExecHandle.java:365) 
    at com.android.build.gradle.internal.process.GradleProcessResult.assertNormalExitValue(GradleProcessResult.java:40) 
    ... 6 more 


BUILD FAILED 

Это мой оценочный файл.

apply plugin: 'com.android.application' 

android { 
// signingConfigs { 
//  config { 
//   keyAlias 'smartcheckinrelease' 
//   keyPassword 'smartzip' 
//   storeFile file('/Users/nlele/projects/apk signature/smartcheckinkeystorerelease.jks') 
//   storePassword 'smartzip' 
//  } 
// } 
    compileSdkVersion 23 
    buildToolsVersion '23.0.2' 
    defaultConfig { 
     applicationId "com.smartzip.smartcheckin" 
     minSdkVersion 21 
     targetSdkVersion 23 
     versionCode 1 
     versionName "1.0" 
     multiDexEnabled true 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
     debug { 
      debuggable true 
     } 
    } 
    packagingOptions { 
     exclude 'META-INF/DEPENDENCIES.txt' 
     exclude 'META-INF/DEPENDENCIES' 
     exclude 'META-INF/dependencies.txt' 
     exclude 'META-INF/LICENSE.txt' 
     exclude 'META-INF/LICENSE' 
     exclude 'META-INF/license.txt' 
     exclude 'META-INF/LGPL2.1' 
     exclude 'META-INF/NOTICE.txt' 
     exclude 'META-INF/NOTICE' 
     exclude 'META-INF/notice.txt' 
    } 
    lintOptions { 
     disable 'InvalidPackage' 
    } 
} 

repositories { 

    mavenCentral() 

} 

dependencies { 
    // compile 'cn.pedant.sweetalert:library:1.3' 
    // turning off this library as it has its own launcher icon causing below build error. 
    // Error:Execution failed for task ':app:processDebugResources'. 
    //   > com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Users/nlele/Library/Android/sdk/build-tools/22.0.1/aapt'' finished with non-zero exit value 1 
    compile 'com.commit451:NativeStackBlur:1.0.2' 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.support:support-v4:23.1.1' 
    compile fileTree(dir: 'libs', include: '*.jar', exclude: 'android-support-*.jar') 
    compile 'com.jakewharton:butterknife:6.0.0' 
    compile 'com.android.support:appcompat-v7:23.1.1' 
    compile 'com.android.support:cardview-v7:23.1.1' 
    compile 'io.reactivex:rxandroid:1.0.1' 
    compile 'io.reactivex:rxjava:1.0.14' 
    compile 'com.nineoldandroids:library:2.4.0' 
    compile 'com.daimajia.easing:library:[email protected]' 
    compile 'com.daimajia.androidanimations:library:[email protected]' 
    compile 'com.daimajia.slider:library:1.1.2' 
    compile 'com.google.android.gms:play-services:8.3.0' 
    compile 'com.google.android.gms:play-services-maps:8.3.0' 
    // compile project(':Downloads:JakeWharton-Android-ViewPagerIndicator-8cd549f:library') 
    compile 'com.android.support:recyclerview-v7:23.1.1' 
    // compile project(':myviewpagerindicator') 
    compile project(':myindicator') 
    // compile project(':MyViewAnimation') 
    compile 'com.daimajia.easing:library:1.0.2' 
    compile 'com.daimajia.swipelayout:library:1.2.0' 
    compile 'com.github.chrisbanes.photoview:library:1.2.3' 
    compile project(':MyHelloCharts') 
    // compile 'com.inkapplications.viewpageindicator:library:2.4.3' 
    compile project(':MyCircleProgressIndicator') 
    compile 'com.getbase:floatingactionbutton:1.9.0' 
    compile 'com.facebook.android:facebook-android-sdk:4.5.0' 
    compile 'org.apache.httpcomponents:httpmime:4.5.1' 
    compile 'org.apache.httpcomponents:httpcore:4.4.4' 
    compile 'org.apache.httpcomponents:httpclient:4.5.1' 
    compile 'com.google.code.gson:gson:2.3' 
    compile 'org.apache.httpcomponents:httpclient-cache:4.5.1' 
    compile 'com.amazonaws:aws-android-sdk-mobileanalytics:2.2.2' 
    compile 'com.github.gabrielemariotti.cards:cardslib-core:2.1.0' 
    compile 'com.github.gabrielemariotti.cards:cardslib-cards:2.1.0' 
    compile 'com.github.gabrielemariotti.cards:cardslib-recyclerview:2.1.0' 
    compile 'com.rockerhieu:rv-adapter-endless:1.1' 
    compile 'net.danlew:android.joda:2.8.2' 
    //retrofit Library 
    compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2' 
    compile 'com.squareup.retrofit:retrofit:2.0.0-beta2' 
    compile 'com.squareup.retrofit:adapter-rxjava:2.0.0-beta2' 
    compile project(':AudioRecordLibrary') 
    compile 'org.solovyev.android.views:linear-layout-manager:[email protected]' 
    compile 'com.squareup.picasso:picasso:2.5.2' 
} 
+0

У вас есть решение для этого. Я столкнулся с той же проблемой !!!! – Bhavna

ответ

0

град на самом деле не здание прекрасный. Вы не получаете ошибку градиента при выполнении тестовых сборок, потому что не пытаетесь скомпилировать dex в файл APK. Таким образом, на самом деле у вас нет ошибок в коде.

Проблема, с которой вы сталкиваетесь (как уже упоминалось в другом ответе), является пределом для методов файлов dex. У вас слишком много библиотек, чтобы вписаться в старую сборку dex, в которой для ссылочных методов использовался 16-разрядный целочисленный идентификатор. Если вы превысите это количество методов в своей структуре dex (65 536), возникает ошибка сборки dex (http://developer.android.com/tools/building/multidex.html).

Вы можете сделать несколько вещей, чтобы избежать этой проблемы.

  1. Использовать многодисковые сборки.
  2. Вручную удалите неиспользуемые ссылки на библиотеки до тех пор, пока вы не достигнете предела.
  3. Используйте инструмент (Proguard) для удаления неиспользуемых объектов/методов, пока он не станет ниже предела.

В конечном счете, обновление, подобное тому, что вы делаете, может привести к необходимости использовать сборки с несколькими деками.

Смежные вопросы