wake-up-neo.net

Fehler: Ressource Android: attr/preserveIconSpacing ist privat

Hallo, ich versuche, mein Android-App-Projekt von Eclipse zu Android Studio zu migrieren. Dies ist für Android KitKat gebaut. Ich habe vergessen, welche Version von Eclipse ich verwendet habe. Ich benutze Android Studio 3.0.1. Ich folgte der Anweisung von hier https://developer.Android.com/studio/intro/migrate.html . Ich habe diesen Fehler beim Migrieren erhalten. Bitte helfen Das bedeutet mir viel

Fehlermeldung Image

Und dies ist die Fehlermeldung in der Gradle Console

Executing tasks: [:app:generateDebugSources, :app:generateDebugAndroidTestSources, :app:mockableAndroidJar]

Configuration on demand is an incubating feature.
Configuration 'compile' in project ':app' is deprecated. Use 'implementation' instead.
:app:preBuild UP-TO-DATE
:app:preDebugBuild
:app:compileDebugAidl
:app:compileDebugRenderscript
:app:checkDebugManifest
:app:generateDebugBuildConfig
:app:prepareLintJar
:app:generateDebugResValues
:app:generateDebugResources
:app:mergeDebugResources
:app:createDebugCompatibleScreenManifests
:app:processDebugManifest
:app:splitsDiscoveryTaskDebug
:app:processDebugResources
AGPBI: {"kind":"error","text":"error: resource Android:attr/preserveIconSpacing is private.","sources":[{"file":"C:\\Users\\Shazwan\\.gradle\\caches\\transforms-1\\files-1.1\\appcompat-v7-19.1.0.aar\\df4f4f2e7a9c43dda4827c11e87fed2a\\res\\values\\values.xml","position":{"startLine":507,"startColumn":4,"startOffset":24529,"endColumn":61,"endOffset":24586}}],"original":"","tool":"AAPT"}
D:\Work\AndroidD\OpacKAWAT\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:133: error: resource Android:attr/preserveIconSpacing is private.
error: failed linking references.

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 Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:62)
    at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:43)
    at Java.lang.reflect.Method.invoke(Method.Java:498)
    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 Java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.Java:1142)
    at Java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.Java:617)
    at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.Java:55)
    at Java.lang.Thread.run(Thread.Java:745)
Caused by: Java.util.concurrent.ExecutionException: Java.util.concurrent.ExecutionException: com.Android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
    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)
    ... 48 more
Caused by: Java.util.concurrent.ExecutionException: com.Android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
    at com.google.common.util.concurrent.AbstractFuture.getDoneValue(AbstractFuture.Java:503)
    at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.Java:462)
    at com.google.common.util.concurrent.AbstractFuture$TrustedFuture.get(AbstractFuture.Java:79)
    at com.Android.builder.internal.aapt.v2.QueueableAapt2.lambda$makeValidatedPackage$1(QueueableAapt2.Java:179)
    at Java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.Java:1142)
    at Java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.Java:617)
    ... 1 more
Caused by: com.Android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
    at com.Android.builder.png.AaptProcess$NotifierProcessOutput.handleOutput(AaptProcess.Java:463)
    at com.Android.builder.png.AaptProcess$NotifierProcessOutput.err(AaptProcess.Java:415)
    at com.Android.builder.png.AaptProcess$ProcessOutputFacade.err(AaptProcess.Java:332)
    at com.Android.utils.GrabProcessOutput$1.run(GrabProcessOutput.Java:104)

 FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:processDebugResources'.
> 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 37s

12 actionable tasks: 12 executed
3
Wan999

Meine Erfahrung war folgende: Nachdem ich von targetSdkVersion 21 auf 19 heruntergestuft wurde (weil ungefähr 20 Handys in meiner Firma Android 4.4 verwenden), stieß der Fehler auf den Titel: resource Android:attr/preserveIconSpacing is private.

Ich habe es geschafft, diesen Fehler auf diese Weise zu überwinden:

In der Fehlermeldung wurde das Verzeichnis mit der Einstellung geschrieben, in meinem Fall war es: .gradle\caches\transforms-1\files-1.1\appcompat-v7-19.0.0.aar\4cd3ccb7957b0114d8e3c7a67ecc96ad\res\values\. Ich öffnete die Datei attr.xml aus diesem Verzeichnis und kommentierte die gesamte in der Nachricht angegebene Zeile.

<attr name="Android:preserveIconSpacing" />

Nun ist der hässliche Fehler verschwunden. Ich habe nicht geglaubt, dass das Problem dadurch gelöst werden könnte, dass es sich wie ein Cache-Verzeichnis anhört und das überschrieben werden könnte, aber es war nicht so, es hat funktioniert.

Früher habe ich auch versucht, die Datei attr.xml aus dem Android-Verzeichnis zu ändern, von der ich dachte, dass sie die Lösung ist, dh Android-sdk\extras\Android\support\v7\appcompat\res\values ​​\ attr.xml . Diese Datei konnte jedoch nicht geändert werden, sie war schreibgeschützt. Ich habe alles Android-Studio geschlossen, kein Java oder eine ähnliche App gestartet, aber kein Glück.

Früher habe ich auch versucht, "attr.xml" aus dem Verzeichnis Android-sdk\extras\Android\support\v7\appcompat\res\values ​​\ zu kopieren, die Einstellung preserveIconSpacing zu ändern und diese dann in meine res/values ​​zu kopieren Verzeichnis. Kein Glück.

UPDATE 2018-nov-05 . In einer anderen Installation war es keine "attr.xml" -Datei, die diese Zeichenfolge "" enthielt. Also durchsuchte ich das gesamte "res" -Verzeichnis, das im Fehler angegeben wurde, und es wurde in der Datei "values.xml" gefunden. Ich habe es dort kommentiert. Und es hat funktioniert.

Ich hoffe das hilft jemandem.

4
mihai71

Das gleiche Problem hatte ich beim Upgrade von Eclipse auf Android Studio. Ich habe es durch ein Upgrade von build.gradle gelöst.

zuerst habe ich ein Upgrade durchgeführt

 buildToolsVersion 

dann geändert 

  compileSdkVersion 'your api level'
  minSdkVersion 'your api level'
  targetSdkVersion 'your api level'

auch aufgerüstet

dependencies {
implementation 'com.Android.support:appcompat-v7:'your api level''
}

das löste mein Problem

1
Ajith Madhu

Aus irgendeinem Grund wollte ich mein Projekt mit KitKat (API Level 19) kompilieren und dies mit dem neuesten Kanarienvogel (Android Studio 3.3 Canary 5) funktionierte nicht (ich erinnere mich nicht an die Fehlermeldung, aber ich hatte einige Zeit dafür verschwendet und dachte, es könnte sich als hilfreich erweisen, wenn jemand dasselbe Problem hat).

Ich habe folgende Dinge getan:

  1. Öffnen Sie das Projekt in Android Studio 2.3.
  2. Öffnen Sie die Datei build.gradle meines Projekts (nicht die des App-Moduls!) und setzen Sie die Plugin-Version auf 2.2.3:

    dependencies {
        classpath 'com.Android.tools.build:gradle:2.2.3'
    }
    
  3. ersetzte google() im build.gradle des Projekts durch (falls Sie keine google() in Ihrer Datei haben):

    maven {
        url 'https://maven.google.com'
    }
    
  4. Öffnen Sie gradle-wrapper.properties und setzen Sie die Gradle-Version auf 2.14.1 ( diese Seite ist nützlich, wenn Sie Plugin- und Gradle-Versionen auswählen, die miteinander kompatibel sind):

    distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.Zip
    
1
Sufian