【问题标题】:React Native - No resource identifier found for attribute 'appComponentFactory' in package 'android'React Native - 在包'android'中找不到属性'appComponentFactory'的资源标识符
【发布时间】:2018-11-02 07:29:13
【问题描述】:

我遇到了一个问题,每当我尝试使用 react-native run-android 构建时,构建都会失败并出现以下错误。

\?\E:\projects\deets-mobile-cp\android\app\build\intermediates\manifests\full\release\AndroidManifest.xml:88: AAPT:找不到属性“appComponentFactory”的资源标识符 在包'android'中

FAILURE:构建失败并出现异常。

  • 出了什么问题:任务 ':app:processReleaseResources' 执行失败。

    处理资源失败,详见上面的 aapt 输出。

我已研究过该错误,但未能解决。怎么回事我想不通。我正在使用 gradle v3.1.2

有没有人知道怎么回事

React Nativev0.53.3

android/app.js

dependencies {
    compile project(':react-native-vector-icons')
    compile project(':react-native-image-picker')
    compile project(':react-native-facebook-login')
    compile project(':instabug-reactnative')
    compile fileTree(dir: "libs", include: ["*.jar"])
    compile ("com.android.support:appcompat-v7:24.2.0") {
        exclude module: 'support-v4'
    }
    compile "com.facebook.react:react-native:+"  // From node_modules
    compile ("com.facebook.react:react-native:0.53.3") {
        force=true
    }  // From node_modules
    compile project(':react-native-picker')
    compile project(':react-native-braintree-xplat')
    compile project(':react-native-linear-gradient')
    compile project(':mapbox-react-native-mapbox-gl')
    compile ('com.android.support:multidex:1.0.0') 
    compile "com.android.support:support-v13:24.2.1"
    compile project(':react-native-fcm')
    compile 'com.google.firebase:firebase-core:11.8.0' //this decides your firebase SDK version
    compile 'com.google.firebase:firebase-messaging:11.8.0'
    compile ("com.google.android.gms:play-services-base:11.8.0") {
      force = true;
   }
   compile ("com.google.android.gms:play-services-maps:11.8.0") {
      force = true;
   }
    compile project(':react-native-splash-screen')
    compile project(':rn-fetch-blob')
    compile project(':react-native-background-timer')
    compile(project(':react-native-google-signin')){
        exclude group: "com.google.android.gms"
    }
    compile 'com.google.android.gms:play-services-auth:11.8.0'
    compile(project(':react-native-geolocation-service')) {
        exclude group: 'com.google.android.gms', module: 'play-services-location'
    }
    compile 'com.google.android.gms:play-services-location:11.8.0'
    compile project(':react-native-twilio-video-webrtc')
}

gradlew assembleRelease --stacktrace

  • 异常是:org.gradle.api.tasks.TaskExecutionException: 任务“:app:processReleaseResources”执行失败。 在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:100) 在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70) 在 org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51) 在 org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:62) 在 org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54) 在 org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:60) 在 org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:97) 在 org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:87) 在 org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52) 在 org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52) 在 org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54) 在 org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43) 在 org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34) 在 org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:248) 在 org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336) 在 org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328) 在 org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199) 在 org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110) 在 org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:241) 在 org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:230) 在 org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:123) 在 org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:79) 在 org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:104) 在 org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:98) 在 org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:626) 在 org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:581) 在 org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:98) 在 org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63) 在 org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46) 在 org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55) 原因:org.gradle.tooling.BuildException:处理失败 有关详细信息,请参阅上面的 aapt 输出。 在 com.android.build.gradle.internal.res.LinkApplicationAndroidResourcesTask.invokeAaptForSplit(LinkApplicationAndroidResourcesTask.java:512) 在 com.android.build.gradle.internal.res.LinkApplicationAndroidResourcesTask.doFullTask​​Action(LinkApplicationAndroidResourcesTask.java:249) 在 com.android.build.gradle.internal.tasks.IncrementalTask​​.taskAction(IncrementalTask​​.java:106) 在 org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73) 在 org.gradle.api.internal.project.taskfactory.IncrementalTask​​Action.doExecute(IncrementalTask​​Action.java:46) 在 org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39) 在 org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26) 在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:121)

【问题讨论】:

  • 我得到了这个,但是因为我将react-native-fcm 升级到了版本 16,它支持 Android 8,我过得很糟糕。

标签: android react-native android-gradle-plugin build.gradle


【解决方案1】:

我有同样的问题,并查看您的依赖项,我们都在使用 react-native-braintree-xplat。

Braintree 最近更新了该库以支持 Android 28,问题就出在这里。

我不是安卓专家,但你应该强制 com.braintreepayments.api 到版本 2.17.0

我在我的项目 build.gradle 中使用

allprojects {
    repositories {
        ......
        configurations.all {
            resolutionStrategy {
                force 'com.braintreepayments.api:braintree:2.17.0'
            }
        }
        ......
    }

【讨论】:

  • 非常感谢。我通过强制将 api:braintree api 设置为 2.17.0 来实现它
【解决方案2】:

我也遇到了这个问题,我发现我的一个包导致了这个问题(更改构建工具版本和使用解决策略对我没有帮助。)。所以我所做的是我一个一个地删除了包并尝试构建应用程序。幸运的是,这个错误是由我正在使用的一个包触发的。所以我不得不更换它。

所以我建议你做同样的尝试一个一个删除包,看看问题是否是由任何包引起的。

先尝试删除以下包:

compile project(':rn-fetch-blob') 
compile project(':react-native-braintree-xplat')
compile(project(':react-native-google-signin')

【讨论】:

  • 我尝试删除这些包,发现是braintree-xplat 造成的。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多