2017-12-14 3 views
0

Meine App funktioniert perfekt in Genymotion Emulator. Aber ich bin dabei, app-release.apk zu bauen.Reagieren nativen Android Build fehlgeschlagen mit 'Gradlew AssemblyRelease'

React native version: 0.46.x 

Und build.gradle Datei:

... 
android { 
    compileSdkVersion 26 
    buildToolsVersion "26.0.2" 
    ... 

Auch wenn ich gradlew assembleDebug verwenden, ist es mit Folge Ausgabe erfolgreich sein, aber falsch apk in app\build\outputs\apk\debug (nicht aktuellen Arbeitsversion in Emulator erzeugt, aber immer noch alte Version in früheren Entwicklungsschritt.)

BUILD SUCCESSFUL in 57s 
225 actionable tasks: 216 executed, 9 up-to-date 

Auch wenn ich versuche, gradlew assembleRelease zu verwenden, scheiterte es mit Follow-Ausgang.

> Task :app:processReleaseResources 
Failed to execute aapt 
com.android.ide.common.process.ProcessException: Failed to execute aapt 
     at com.android.builder.core.AndroidBuilder.processResources(AndroidBuilder.java:796) 
     at com.android.build.gradle.tasks.ProcessAndroidResources.invokeAaptForSplit(ProcessAndroidResources.java:551) 
     at com.android.build.gradle.tasks.ProcessAndroidResources.doFullTaskAction(ProcessAndroidResources.java:285) 
     at com.android.build.gradle.internal.tasks.IncrementalTask.taskAction(IncrementalTask.java:109) 
     at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73) 
     at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$IncrementalTaskAction.doExecute(DefaultTaskClassInfoStore.java:173) 
     at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:134) 
     at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:121) 
     at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:122)  at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336) 
     at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328) 
     at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:197) 
     at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107) 
     at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:111) 
     at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:92) 
     at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70) 
     at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:63) 
     at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54) 
     at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58) 
     at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:88) 
     at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52) 
     at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52) 
     at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54) 
     at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43) 
     at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34) 
     at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:248) 
     at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336) 
     at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328) 
     at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:197) 
     at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107) 
     at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:241) 
     at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:230) 
     at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:124) 
     at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:80) 
     at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:105) 
     at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:99) 
     at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:625) 
     at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:580) 
     at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:99) 
     at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63) 
     at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46) 
     at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55) 
Caused by: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: Error while executing process <Android Sdk Folder>\build-tools\27.0.1\aapt.exe with arguments {package -f --no-crunch -I <Android Sdk Folder>\platforms\android-24\android.jar -M \\?\<My Project Folder>\android\app\build\intermediates\manifests\full\release\AndroidManifest.xml -S <My Project Folder>\android\app\build\intermediates\res\merged\release -m -J \\?\<My Project Folder>\android\app\build\generated\source\r\release -F <My Project Folder>\android\app\build\intermediates\res\release\resources-release.ap_ -G \\?\<My Project Folder>\android\app\build\intermediates\proguard-rules\release\aapt_rules.txt --custom-package com.beostore -0 apk --output-text-symbols \\?\<My Project Folder>\android\app\build\intermediates\symbols\release --no-version-vectors} 
     at com.google.common.util.concurrent.AbstractFuture.getDoneValue(AbstractFuture.java:503) 
     at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:482) 
     at com.google.common.util.concurrent.AbstractFuture$TrustedFuture.get(AbstractFuture.java:79) 
     at com.android.builder.core.AndroidBuilder.processResources(AndroidBuilder.java:794) 
     ... 41 more 
Caused by: com.android.ide.common.process.ProcessException: Error while executing process <Android Sdk Folder>\build-tools\27.0.1\aapt.exe with arguments {package -f --no-crunch -I <Android Sdk Folder>\platforms\android-24\android.jar -M \\?\<My Project Folder>\android\app\build\intermediates\manifests\full\release\AndroidManifest.xml -S <My Project Folder>\android\app\build\intermediates\res\merged\release -m -J \\?\<My Project Folder>\android\app\build\generated\source\r\release -F <My Project Folder>\android\app\build\intermediates\res\release\resources-release.ap_ -G \\?\<My Project Folder>\android\app\build\intermediates\proguard-rules\release\aapt_rules.txt --custom-package com.beostore -0 apk --output-text-symbols \\?\<My Project Folder>\android\app\build\intermediates\symbols\release --no-version-vectors} 
     at com.android.build.gradle.internal.process.GradleProcessResult.buildProcessException(GradleProcessResult.java:73) 
     at com.android.build.gradle.internal.process.GradleProcessResult.assertNormalExitValue(GradleProcessResult.java:48) 
     at com.android.builder.internal.aapt.AbstractProcessExecutionAapt$1.onSuccess(AbstractProcessExecutionAapt.java:78) 
     at com.android.builder.internal.aapt.AbstractProcessExecutionAapt$1.onSuccess(AbstractProcessExecutionAapt.java:74) 
     at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1237) 
     at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:399) 
     at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:911) 
     at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:822) 
     at com.google.common.util.concurrent.AbstractFuture.set(AbstractFuture.java:664) 
     at com.google.common.util.concurrent.SettableFuture.set(SettableFuture.java:48) 
     at com.android.build.gradle.internal.process.GradleProcessExecutor$1.run(GradleProcessExecutor.java:58) 
Caused by: org.gradle.process.internal.ExecException: Process 'command '<Android Sdk Folder>\build-tools\27.0.1\aapt.exe'' finished with non-zero exit value 1 
     at org.gradle.process.internal.DefaultExecHandle$ExecResultImpl.assertNormalExitValue(DefaultExecHandle.java:380) 
     at com.android.build.gradle.internal.process.GradleProcessResult.assertNormalExitValue(GradleProcessResult.java:46) 
     ... 9 more 


FAILURE: Build failed with an exception. 

* What went wrong: 
Execution failed for task ':app:processReleaseResources'. 
> Failed to execute aapt 

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

* Get more help at https://help.gradle.org 

BUILD FAILED in 2m 6s 
105 actionable tasks: 3 executed, 102 up-to-date 

Android Build-Tools-Versionen installiert:

23.0.1 
24.0.3 
25.0.0 
25.0.3 
26.0.1 
26.0.2 
27.0.0 
27.0.1 

Und Plattform-Versionen installiert:

android-21 
android-23 
android-24 
android-25 
android-26 

ich viel gegoogelt, aber konnte nicht die Lösung finden. Hoffen Sie Ihre große Hilfe.

Vielen Dank im Voraus.

Antwort

0

Ich habe es endlich behoben. Ich habe gerade diesen Block unter currentBundleTask 's doFirst{...} Block in react.gradle Datei hinzugefügt.

doLast { 
    def moveFunc = { resSuffix -> 
     File originalDir = file("${resourcesDir}/drawable-${resSuffix}") 
     if (originalDir.exists()) { 
      File destDir = file("${resourcesDir}/drawable-${resSuffix}-v4") 
      ant.move(file: originalDir, tofile: destDir) 
     } 
    } 
    moveFunc.curry("ldpi").call() 
    moveFunc.curry("mdpi").call() 
    moveFunc.curry("hdpi").call() 
    moveFunc.curry("xhdpi").call() 
    moveFunc.curry("xxhdpi").call() 
    moveFunc.curry("xxxhdpi").call() 
} 

auf der AvatarQing's comment in Github Diese Antwort basiert.

Vielen Dank für Ihre Aufmerksamkeit.

0

Ich habe das ähnliche Problem. Ich habe geschaut, wie der AAPT ausgeführt wird und starte denselben Prozess mit den gleichen Parametern von der Kommandozeile aus - in deinem Fall würde dies aus dem Protokoll stammen, das du gepostet hast (möglicherweise musst du die Platzhalter "Android Sdk Folder" etc. durch Real ersetzen) Werte):

<Android Sdk Folder>\build-tools\27.0.1\aapt.exe package -f --no-crunch -I <Android Sdk Folder>\platforms\android-24\android.jar -M \\?\<My Project Folder>\android\app\build\intermediates\manifests\full\release\AndroidManifest.xml -S <My Project Folder>\android\app\build\intermediates\res\merged\release -m -J \\?\<My Project Folder>\android\app\build\generated\source\r\release -F <My Project Folder>\android\app\build\intermediates\res\release\resources-release.ap_ -G \\?\<My Project Folder>\android\app\build\intermediates\proguard-rules\release\aapt_rules.txt --custom-package com.beostore -0 apk --output-text-symbols \\?\<My Project Folder>\android\app\build\intermediates\symbols\release --no-version-vectors 

Dann bekam ich die wirkliche Fehlermeldung aus aapt Prozess, der unterdrückt worden ist - bei Ihnen die graddle bauen und brachte ähnliche stacktrace wie in meinem Fall von Idea lief. I mein Fall es stellte sich heraus mein AndroidManifest.xml enthält einige Wert, der vom Compiler nicht verstanden werden kann, aber es kann in Ihrem Fall abweichen, denke ich ...

Verwandte Themen