Cordova-plugin-firebase: 不能再在安卓上构建了

创建于 2019-06-18  ·  59评论  ·  资料来源: arnesson/cordova-plugin-firebase

我正在正常开发我的应用程序。 我今天成功地构建了 10 次。
但是,我再次编译,现在当 firebase 插件在项目中时,我不能再运行了。

如果我删除插件项目运行。

我正在使用[email protected] (无法更新到 8.0.0)

发生以下构建错误:

:app:processDebugResources/home/sandro/.gradle/caches/transforms-1/files-1.1/appcompat-v7-26.1.0.aar/c9104c96e21bf9c9613f4661f4e5d49e/res/values/values.xml:246:5-69: AAPT: error: resource android:attr/fontVariationSettings not found.

/home/sandro/.gradle/caches/transforms-1/files-1.1/appcompat-v7-26.1.0.aar/c9104c96e21bf9c9613f4661f4e5d49e/res/values/values.xml:246:5-69: AAPT: error: resource android:attr/ttcIndex not found.

/home/user/my_cordova_project/platforms/android/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml:244: error: resource android:attr/fontVariationSettings not found.
/home/user/my_cordova_project/platforms/android/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml:244: error: resource android:attr/ttcIndex not found.
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:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
    at java.lang.Thread.run(Thread.java:748)
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:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    ... 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)

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:processDebugResources'.

其他人还有相同的疑问么? 谢谢。

最有用的评论

我从这个评论中得到的解决方案https://github.com/arnesson/cordova-plugin-firebase/issues/1081#issuecomment -503041641

  1. build-extras.gradle放在您的项目根目录中
def dependencyMap = [
        "com.google.firebase:firebase-core": "16.0.8",
        "com.google.firebase:firebase-iid": "17.1.1",
        "com.google.firebase:firebase-messaging": "17.5.0",
        "com.google.firebase:firebase-config": "16.4.0",
        "com.google.firebase:firebase-perf": "16.2.4",
        "com.google.android.gms:play-services-tagmanager": "16.0.8",
        "com.google.firebase:firebase-auth": "16.2.0"
]

allprojects {
    repositories {
            google()
            jcenter()
            mavenLocal()
    }

    configurations.all {

        resolutionStrategy {

            eachDependency { DependencyResolveDetails details ->
                def group = details.requested.group
                def name = details.requested.name
                def fullName =  group + ":" + name
                print fullName
                if (dependencyMap.containsKey(fullName)) {
                    details.useVersion dependencyMap[fullName]
                }
            }
        }
    }

}
  1. 将此挂钩代码放在您的脚本/copy_build_extra.js 中
#!/usr/bin/env node

const fs = require('fs')
fs.copyFileSync("./build-extras.gradle", "./platforms/android/build-extras.gradle");
  1. 在 android 平台内的 config.xml 中配置钩子
<platform name="android">
  <hook src="scripts/copy_build_extra.js" type="after_prepare" />
</platform>
  1. 重新安装平台以激活挂钩
cordova platform rm android
cordova platform add android

为我工作,希望也能为你做

所有59条评论

已经在同一个问题上斗争了三天

你好@SandroMoretti

我一整天都在为这个问题而斗争......我的项目也无法更新到 Cordova 8,所以我什至决定移植到 Ionic 4(它是用 Ionic 3 完成的)。 因此,在使用 Cordova 8 和 Ionic 4 之后,我遇到了很多错误……您发布的错误与 Android 28 相关,原因是该库使用 'com.google. firebase:firebase-X :+' 作为依赖项,昨天 Firebase 在6 月 17 日发布了一个突破性的

任何帮助将不胜感激,谢谢!

同样在这里。 我认为这是因为插件依赖于刚刚更新的com.google.firebase:firebase-auth:+

https://developers.google.com/android/guides/releases

不再支持 API <28

同样的问题! 我不能再在 android 上构建了。

我遇到了同样的问题,现在我无法编译应用程序并收到此错误:

:app:processDebugResources
C:\Users\mmzep\.gradle\caches\transforms-1\files-1.1\core-1.0.0.aar\73b4a83ab5e76f20c84a66b1c8444d08\res\values\values.xml:133:5-70: AAPT: error: resource android:attr/fontVariationSettings not found.

C:\Users\mmzep\.gradle\caches\transforms-1\files-1.1\core-1.0.0.aar\73b4a83ab5e76f20c84a66b1c8444d08\res\values\values.xml:133:5-70: AAPT: error: resource android:attr/ttcIndex not found.

C:\Users\mmzep\Desktop\mario\Seven\SevenPassengerApp\platforms\android\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:95: error: resource android:attr/fontVariationSettings not found.
C:\Users\mmzep\Desktop\mario\Seven\SevenPassengerApp\platforms\android\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:95: error: resource android:attr/ttcIndex not found.
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)

我的截止日期非常紧迫,这打破了我的项目,因为它完全依赖于 firebase。

同样的问题在这里。 我尝试将https://firebase.google.com/support/release-notes/android#20180523和cordova android 要求的所有依赖项更新到8.0.0,但没有成功。 当我删除cordova-plugin-firebase时,它可以工作。 这是我得到的错误:

Dependency failing: com.google.android.gms:play-services-tagmanager-api:15.0.2 -> com.google.android.gms:play-services-m
  easurement-base@[15.0.2], but play-services-measurement-base version was 15.0.4.

  The following dependencies are project dependencies that are direct or have transitive dependencies that lead to the art
  ifact with the issue.
  -- Project 'app' depends onto com.google.android.gms:[email protected]
  -- Project 'app' depends onto com.google.firebase:[email protected]
  -- Project 'app' depends onto com.google.android.gms:[email protected]
  -- Project 'app' depends onto com.google.android.gms:[email protected]
  -- Project 'app' depends onto com.google.android.gms:[email protected]
  -- Project 'app' depends onto com.google.android.gms:[email protected]

所以不能用firebase构建。

今天早上,当我看到 gradle 下载新的 maven 文件时,我已经汗流浃背了,出乎我的意料,一切都开始了!

同样在这里。 请任何解决方案

我从这个评论中得到的解决方案https://github.com/arnesson/cordova-plugin-firebase/issues/1081#issuecomment -503041641

  1. build-extras.gradle放在您的项目根目录中
def dependencyMap = [
        "com.google.firebase:firebase-core": "16.0.8",
        "com.google.firebase:firebase-iid": "17.1.1",
        "com.google.firebase:firebase-messaging": "17.5.0",
        "com.google.firebase:firebase-config": "16.4.0",
        "com.google.firebase:firebase-perf": "16.2.4",
        "com.google.android.gms:play-services-tagmanager": "16.0.8",
        "com.google.firebase:firebase-auth": "16.2.0"
]

allprojects {
    repositories {
            google()
            jcenter()
            mavenLocal()
    }

    configurations.all {

        resolutionStrategy {

            eachDependency { DependencyResolveDetails details ->
                def group = details.requested.group
                def name = details.requested.name
                def fullName =  group + ":" + name
                print fullName
                if (dependencyMap.containsKey(fullName)) {
                    details.useVersion dependencyMap[fullName]
                }
            }
        }
    }

}
  1. 将此挂钩代码放在您的脚本/copy_build_extra.js 中
#!/usr/bin/env node

const fs = require('fs')
fs.copyFileSync("./build-extras.gradle", "./platforms/android/build-extras.gradle");
  1. 在 android 平台内的 config.xml 中配置钩子
<platform name="android">
  <hook src="scripts/copy_build_extra.js" type="after_prepare" />
</platform>
  1. 重新安装平台以激活挂钩
cordova platform rm android
cordova platform add android

为我工作,希望也能为你做

这是最好的解决方案,更少的“黑客”要做: https :

谢谢@igorkurochka ,真的又工作了。

PS:我使用的是cordova 6.5和Android 7.1.4,所以不需要像dann所说的那样更新到android 8。

@SandroMoretti我想如果你能更新就好了,做吧..因为这个插件会产生更多的麻烦,因为 4 月我使用了插件的一个分支,为了解决构建问题,我使用的是cordova-android@7 ,似乎有些作为此插件依赖项的库不再支持 API < 28,因此最好使用使用 API 28 的cordova-android@8 ...

@dann95 ,我知道。 我试过更新。 我不知道为什么,但我无法更新我的cordova。

Npm 只需在此处安装cordova 6.5。 也许是我过时的系统(ubuntu 14)。
总有一天我会保留我的一天来升级我的操作系统,然后我更新cordova和android平台。
谢谢你。

您的 Cordova cli 是全局安装的,您必须全局删除它。 "-g" xD

@SandroMoretti我想如果你能更新就好了,做吧..因为这个插件会产生更多的麻烦,因为 4 月我使用了插件的一个分支,为了解决构建问题,我使用的是cordova-android@7 ,似乎有些作为此插件依赖项的库不再支持 API < 28,因此最好使用使用 API 28 的cordova-android@8 ...

在cordova-plugin-firebase 目录之前是93,9 MB,现在是1,30 MB。
之前没有安装cordova-plugin-cocoapod-support,现在安装了。

你也一样吗?

@pegasx
没有为我安装 cocoapod-support。

@pegasx
没有为我安装 cocoapod-support。

抱歉,您没有安装 dpa99c 的解决方案。 所以问题是@dann95。

在cordova-plugin-firebase 目录之前是93,9 MB,现在是1,30 MB。
之前没有安装cordova-plugin-cocoapod-support,现在安装了。

你也一样吗?

image

cocoapod 必须是“swift”,它也安装在我的 linux 中,将调查原因

关于尺寸,知道之前的尺寸是多少,但它似乎有效。

这个解决方案对我有用,但我必须创建一个新项目并将我的所有文件复制到该新项目中,因为使用链接中的步骤在现有存储库上产生了更多问题......

谢谢@igorkurochka ,再次工作。

@igorkurochka
感谢您的修复。 它也适用于我。 我的理解是下面的列表是 firbase 插件的依赖项。 这些不应该由插件本身定义吗? 使用外部 cordova hook 将这些添加到 android 项目看起来像是一种解决方法,但不是解决方案。 是否有机会创建拉取请求以获取主存储库中定义的依赖项的确切版本? 谢谢。

``
定义依赖映射 = [
"com.google.firebase:firebase -core ": "16.0.8",
"com.google.firebase :firebase-iid ": "17.1.1",
"com.google.firebase:firebase -messaging ": "17.5.0",
"com.google.firebase:firebase -config ": "16.4.0",
"com.google.firebase :firebase-perf ": "16.2.4",
"com.google.android.gms :play-services-tagmanager ": "16.0.8",
“com.google.firebase:firebase -auth ”:“16.2.0”
]

@桑德罗莫雷蒂
确实, @igorkurochka解决了这个问题,但这更像是一种解决方法,而不是解决方案。 插件依赖项的版本应该由插件而不是cordova 应用程序定义。 如果插件的依赖项发生变化,此修复程序可能会变得不可靠。

我建议重新打开这个问题。

我从这个评论#1081 (comment) 中得到的解决方案

  1. build-extras.gradle放在您的项目根目录中
def dependencyMap = [
        "com.google.firebase:firebase-core": "16.0.8",
        "com.google.firebase:firebase-iid": "17.1.1",
        "com.google.firebase:firebase-messaging": "17.5.0",
        "com.google.firebase:firebase-config": "16.4.0",
        "com.google.firebase:firebase-perf": "16.2.4",
        "com.google.android.gms:play-services-tagmanager": "16.0.8",
        "com.google.firebase:firebase-auth": "16.2.0"
]

allprojects {
    repositories {
            google()
            jcenter()
            mavenLocal()
    }

    configurations.all {

        resolutionStrategy {

            eachDependency { DependencyResolveDetails details ->
                def group = details.requested.group
                def name = details.requested.name
                def fullName =  group + ":" + name
                print fullName
                if (dependencyMap.containsKey(fullName)) {
                    details.useVersion dependencyMap[fullName]
                }
            }
        }
    }

}
  1. 将此挂钩代码放在您的脚本/copy_build_extra.js 中
#!/usr/bin/env node

const fs = require('fs')
fs.copyFileSync("./build-extras.gradle", "./platforms/android/build-extras.gradle");
  1. 在 android 平台内的 config.xml 中配置钩子
<platform name="android">
  <hook src="scripts/copy_build_extra.js" type="after_prepare" />
</platform>
  1. 重新安装平台以激活挂钩
cordova platform rm android
cordova platform add android

为我工作,希望也能为你做

@igorkurochka ,我仍然面临这种类型的问题,你能帮我吗
平台/android/app/src/main/java/org/apache/cordova/firebase/FirebasePlugin。 java:9 :错误:找不到符号
导入 android.support.v4.app.NotificationManagerCompat;

@pankajPizone您是否删除了 gradle 缓存?

rm -rf ~/.gradle/

来自android文件夹的@dann95

“~”表示你的家,所以它会清除类似

/home/myusername/.gradle/

好的@dann95我正在尝试

@dann95还是一样

好的。
再打开。
谢谢@uifox

Dan,关于我的cordova cli,我已被全局删除并在全局重新安装。
就像我说的,重新安装后保持6.5。

谢谢。

@SandroMoretti您找到任何解决方案了吗?
我正面临这个问题
firebase/FirebasePluginMessagingService。 java:11 :错误:找不到符号
导入 android.support.v4.app.NotificationCompat;

@SandroMoretti也许升级节点版本? 尝试使用 nvm 能够在节点版本之间轻松切换..

@pankajPizone你能用所有插件显示你的 config.xml 吗?

@dann95这里是 config.xml 中的插件

<plugin name="cordova-plugin-statusbar" spec="^2.4.2" />
    <plugin name="cordova-plugin-splashscreen" spec="^5.0.2" />
    <plugin name="cordova-plugin-ionic-webview" spec="^2.4.0">
        <variable name="ANDROID_SUPPORT_ANNOTATIONS_VERSION" value="27.+" />
    </plugin>
    <plugin name="cordova-plugin-ionic-keyboard" spec="^2.1.3" />
    <plugin name="cordova-plugin-firebase" spec="^2.0.5" />
    <plugin name="cordova-plugin-facebook4" spec="^4.2.1">
        <variable name="APP_ID" value="xxxxxx" />
        <variable name="APP_NAME" value="x x" />
        <variable name="FACEBOOK_ANDROID_SDK_VERSION" value="4.38.1" />
        <variable name="FACEBOOK_HYBRID_APP_EVENTS" value="false" />
    </plugin>
    <plugin name="cordova-plugin-nativegeocoder" spec="^3.2.0" />
    <plugin name="cordova-plugin-geolocation" spec="^4.0.1">
        <variable name="GEOLOCATION_USAGE_DESCRIPTION" value="To locate you" />
    </plugin>
    <plugin name="cordova-plugin-appavailability" spec="^0.4.2" />
    <plugin name="cordova-plugin-media" spec="^5.0.2" />
    <plugin name="cordova-plugin-music-controls" spec="^2.2.0" />
    <plugin name="cordova-plugin-contacts" spec="^3.0.1" />
    <plugin name="cordova-plugin-applemusic" spec="^1.3.3" />
    <plugin name="cordova-plugin-apple-music" spec="^0.2.5" />
    <plugin name="cordova-plugin-whitelist" spec="^1.3.3" />
    <plugin name="com.telerik.plugins.nativepagetransitions" spec="^0.6.5" />
    <plugin name="cordova-plugin-applemusic" spec="^1.3.3" />
    <plugin name="cordova-plugin-apple-music" spec="^0.2.5" />
    <plugin name="cordova-plugin-add-swift-support" spec="1.7.2" />
    <allow-navigation href="http://192.168.1.120:8100" sessionid="8e9a7c7b" />
    <plugin name="com.telerik.plugins.nativepagetransitions" spec="0.6.5" />
  <plugin name="cordova-plugin-googleplus" spec="7.0.0">
        <variable name="REVERSED_CLIENT_ID" value="com.googleusercontent.apps.xxxxxxx" />
        <variable name="WEB_APPLICATION_CLIENT_ID" value="xxxxx-xxxxxxx.apps.googleusercontent.com" />
        <variable name="PLAY_SERVICES_VERSION" value="11.8.0" />
    </plugin>
    <plugin name="cordova-plugin-device" spec="../../cordova-plugin-device" />
    <plugin name="uk.co.workingedge.phonegap.plugin.launchnavigator" spec="5.0.4">
        <variable name="GOOGLE_API_KEY_FOR_ANDROID" value="xxxxx" />
        <variable name="OKHTTP_VERSION" value="3.12.0" />
    </plugin>
    <plugin name="cordova-plugin-customurlscheme" spec="4.3.0">
        <variable name="URL_SCHEME" value="spotifyapp" />
        <variable name="ANDROID_SCHEME" value=" " />
        <variable name="ANDROID_HOST" value=" " />
        <variable name="ANDROID_PATHPREFIX" value="/" />
    </plugin>
    <plugin name="cordova-spotify-oauth" spec="0.1.11" />
    <plugin name="cordova-spotify" spec="0.5.8" />
    <plugin name="cordova-plugin-geofence" spec="0.7.0" />
    <engine name="ios" spec="4.5.5" />
    <engine name="android" spec="8.0.0" />

@dann95查找问题有帮助吗?

@pankajPizone我不知道为什么,您是否尝试再次删除和添加平台?

@ dann95我已经尝试过很多次了。

我已经使用两个插件解决了这些问题

ionic cordova plugin add cordova-plugin-androidx
ionic cordova plugin add cordova-plugin-androidx-adapter

@pankajPizone我也使用这两个插件,但是我更新了我的cordova 版本,这就是使用它们的原因...

我仍然遇到此更新的问题:

  • 什么地方出了错:
    无法确定任务“: app:compileDebugJavaWithJavac ”的依赖关系。

    无法解决配置“: app:debugCompileClasspath ”的所有任务依赖
    找不到与 androidx 匹配的任何版本。 遗留:遗留支持-v4 :27.+。
    不匹配的版本:

    • 1.0.0
    • 1.0.0-rc02
    • 1.0.0-rc01
    • 1.0.0-beta01
    • 1.0.0-alpha3

      • 还有 1 个

        要求:

        项目:应用程序

  • 尝试:
    使用 --stacktrace 选项运行以获取堆栈跟踪。 使用 --info 或 --debug 选项运行以获得更多日志输出。 使用 --scan 运行以获得完整的见解。

  • https://help.gradle.org获取更多帮助

在 58 秒内构建失败
C:UsersAdminDesktopOMNICARomnicarplatformsandroidgradlew: 命令失败,退出代码 1 错误输出:
FAILURE:构建失败,出现异常。

  • 什么地方出了错:
    无法确定任务“:app:compileDebugJavaWithJavac”的依赖关系。
    > 无法解析配置 ':app:debugCompileClasspath' 的所有任务依赖项。
    > 找不到与 androidx 匹配的任何版本。 遗留:遗留支持-v4 :27.+。
    不匹配的版本:

    • 1.0.0

    • 1.0.0-rc02

    • 1.0.0-rc01

    • 1.0.0-beta01

    • 1.0.0-alpha3



      • 还有 1 个


        要求:


        项目:应用程序



看起来当我在 build.gradle 中添加平台依赖项时是正确的,但是当我执行“cordova compile”时,它又将我的依赖项变成了错误的依赖项。

科尔多瓦插件ls
cordova-fabric-plugin 1.1.14-dev "cordova-fabric-plugin"
cordova-plugin-android-permissions 1.0.0 “权限”
科尔多瓦插件-androidx 1.0.2“科尔多瓦插件-androidx”
cordova-plugin-androidx-adapter 1.0.2 "cordova-plugin-androidx-adapter"
科尔多瓦插件相机 4.0.3“相机”
cordova-plugin-cocoapod-supportx 1.6.1 “Cordova CocoaPods 依赖支持”
cordova-plugin-crop 0.3.1“CropPlugin”
科尔多瓦插件设备 1.1.7 “设备”
科尔多瓦插件文件 6.0.1 “文件”
cordova-plugin-filechooser 1.2.0“文件选择器”
科尔多瓦插件文件路径 1.5.5 “科尔多瓦插件文件路径”
cordova-plugin-firebasex 2.0.6 “Google Firebase 插件”
cordova-plugin-geolocation 4.0.1“地理定位”
cordova-plugin-googlemaps 2.6.3-20190614-1928 “cordova-plugin-googlemaps”
科尔多瓦插件离子键盘2.1.3“科尔多瓦插件离子键盘”
cordova-plugin-ionic-webview 2.5.0 "cordova-plugin-ionic-webview"
cordova-plugin-screen-orientation 3.0.1“屏幕方向”
cordova-plugin-splashscreen 5.0.2“Splashscreen”
科尔多瓦插件状态栏 2.4.2 “状态栏”
科尔多瓦插件白名单 1.3.3 “白名单”
cordova-sqlite-storage 3.2.0 "Cordova s​​qlite 存储插件-cordova-sqlite-storage 插件版本"
es6-promise-plugin 4.2.2 “承诺”
info.protonet.imageresizer 0.1.1“图像调整器”
onesignal-cordova-plugin 2.4.7 “OneSignal 推送通知”

我也遇到了error: cannot find symbol class NotificationManagerCompat 。 我很想看到一个 PR 来解决这个问题。 我目前已经脱离了 wizpanda 叉子。

我已经使用两个插件解决了这些问题

ionic cordova plugin add cordova-plugin-androidx
ionic cordova plugin add cordova-plugin-androidx-adapter

我的也使用此解决方案成功构建,但碰巧是某种错误,使我的应用程序无法使用。 就像如果插件无法访问一样,我虽然正确添加了它们。 实际上 adb logcat 抛出:
AndroidProtocolHandler: Unable to open asset URL: file:///android_asset/www/cordova_plugins.js
但我很确定我正确地创建了这个项目。 彻底失去了。

@AurumLinux您应该尝试从此评论中的命令开始逐步重建您的应用程序...
当我试图在现有的旧项目上简单地安装插件时,我也陷入了错误之中。

问题是我添加的是cordova-plugin-admobpro-firebase插件而不是cordova-plugin-admobpro。 现在它的工作正常。

cordova-plugin-firebase -> src -> android -> build.gradle 更改第 20 行 com.google。 firebase:firebase-auth :+ 到 com.google。 火力基地:火力基地认证:16.2.1

它适用于:

离子cordova插件添加cordova-plugin-androidx
离子cordova插件添加cordova-plugin-androidx-adapter

它适用于:

离子cordova插件添加cordova-plugin-androidx
离子cordova插件添加cordova-plugin-androidx-adapter

@fvadouko你用的是什么安卓? 7.1 还是 8.0? 任何其他兼容库或修复程序?

@AurumLinux您应该尝试从此评论中的命令开始逐步重建您的应用程序...
当我试图在现有的旧项目上简单地安装插件时,我也陷入了错误之中。

我已经与这个错误斗争了几天。 一旦我从链接的评论切换到分叉,一切正常

我从这个评论#1081 (comment) 中得到的解决方案

  1. build-extras.gradle放在您的项目根目录中
def dependencyMap = [
        "com.google.firebase:firebase-core": "16.0.8",
        "com.google.firebase:firebase-iid": "17.1.1",
        "com.google.firebase:firebase-messaging": "17.5.0",
        "com.google.firebase:firebase-config": "16.4.0",
        "com.google.firebase:firebase-perf": "16.2.4",
        "com.google.android.gms:play-services-tagmanager": "16.0.8",
        "com.google.firebase:firebase-auth": "16.2.0"
]

allprojects {
    repositories {
            google()
            jcenter()
            mavenLocal()
    }

    configurations.all {

        resolutionStrategy {

            eachDependency { DependencyResolveDetails details ->
                def group = details.requested.group
                def name = details.requested.name
                def fullName =  group + ":" + name
                print fullName
                if (dependencyMap.containsKey(fullName)) {
                    details.useVersion dependencyMap[fullName]
                }
            }
        }
    }

}
  1. 将此挂钩代码放在您的脚本/copy_build_extra.js 中
#!/usr/bin/env node

const fs = require('fs')
fs.copyFileSync("./build-extras.gradle", "./platforms/android/build-extras.gradle");
  1. 在 android 平台内的 config.xml 中配置钩子
<platform name="android">
  <hook src="scripts/copy_build_extra.js" type="after_prepare" />
</platform>
  1. 重新安装平台以激活挂钩
cordova platform rm android
cordova platform add android

为我工作,希望也能为你做

顶👏🏽

谢谢@igorkurochka它有效。 我为此苦苦挣扎。

我有问题
FirebasePlugin.java:365: error: cannot find symbol

感谢@igorkurochka。 它适用于我的项目。

@igorkurochka它也在这里工作,谢谢

我从这个评论#1081 (comment) 中得到的解决方案

1. put `build-extras.gradle` in your project root
def dependencyMap = [
        "com.google.firebase:firebase-core": "16.0.8",
        "com.google.firebase:firebase-iid": "17.1.1",
        "com.google.firebase:firebase-messaging": "17.5.0",
        "com.google.firebase:firebase-config": "16.4.0",
        "com.google.firebase:firebase-perf": "16.2.4",
        "com.google.android.gms:play-services-tagmanager": "16.0.8",
        "com.google.firebase:firebase-auth": "16.2.0"
]

allprojects {
    repositories {
            google()
            jcenter()
            mavenLocal()
    }

    configurations.all {

        resolutionStrategy {

            eachDependency { DependencyResolveDetails details ->
                def group = details.requested.group
                def name = details.requested.name
                def fullName =  group + ":" + name
                print fullName
                if (dependencyMap.containsKey(fullName)) {
                    details.useVersion dependencyMap[fullName]
                }
            }
        }
    }

}
1. put this hook code in your scripts/copy_build_extra.js
#!/usr/bin/env node

const fs = require('fs')
fs.copyFileSync("./build-extras.gradle", "./platforms/android/build-extras.gradle");
1. configure hook in config.xml inside android platform
<platform name="android">
  <hook src="scripts/copy_build_extra.js" type="after_prepare" />
</platform>
1. reinstall platform to activate the hook
cordova platform rm android
cordova platform add android

为我工作,希望也能为你做

像魅力一样工作:)。 很棒的解决方案。

我从这个评论#1081 (comment) 中得到的解决方案

  1. build-extras.gradle放在您的项目根目录中
def dependencyMap = [
        "com.google.firebase:firebase-core": "16.0.8",
        "com.google.firebase:firebase-iid": "17.1.1",
        "com.google.firebase:firebase-messaging": "17.5.0",
        "com.google.firebase:firebase-config": "16.4.0",
        "com.google.firebase:firebase-perf": "16.2.4",
        "com.google.android.gms:play-services-tagmanager": "16.0.8",
        "com.google.firebase:firebase-auth": "16.2.0"
]

allprojects {
    repositories {
            google()
            jcenter()
            mavenLocal()
    }

    configurations.all {

        resolutionStrategy {

            eachDependency { DependencyResolveDetails details ->
                def group = details.requested.group
                def name = details.requested.name
                def fullName =  group + ":" + name
                print fullName
                if (dependencyMap.containsKey(fullName)) {
                    details.useVersion dependencyMap[fullName]
                }
            }
        }
    }

}
  1. 将此挂钩代码放在您的脚本/copy_build_extra.js 中
#!/usr/bin/env node

const fs = require('fs')
fs.copyFileSync("./build-extras.gradle", "./platforms/android/build-extras.gradle");
  1. 在 android 平台内的 config.xml 中配置钩子
<platform name="android">
  <hook src="scripts/copy_build_extra.js" type="after_prepare" />
</platform>
  1. 重新安装平台以激活挂钩
cordova platform rm android
cordova platform add android

为我工作,希望也能为你做

您好,工作一段时间后,我解决了无效密钥的问题:空问题。 但是,新的错误信息提示:

* What went wrong:
Could not determine the dependencies of task ':app:compileDebugJavaWithJavac'.
The library com.google.android.gms:play-services-analytics-impl is being requested by various other libraries at [[16.0.8,16.0.8], [17.0.0,17.0.0]], but resolves to 17.0.0. Disable the plugin and check your dependencies tree using ./gradlew :app:dependencies.

如果我将 3 个不同的库(play-services-analytics-impl、play-services-analytics 和 play-services-tagmanager-v4-impl)降级到 16.0.8 以解决这个问题,我会得到“ Crashlytics found an无效的 API 密钥:空。” 再次。 显然,如果我将“com.google.android.gms :play-services-tagmanager ”升级到 17.0.0,我会收到相同的消息

有什么帮助吗?

这是我的 config.xml 的一部分
<platform name="android"> <allow-intent href="market:*" /> <hook src="hooks/android_build_extra.js" type="after_prepare" /> </platform> <platform name="ios"> <allow-intent href="itms:*" /> <allow-intent href="itms-apps:*" /> </platform> <platform name="android"> <preference name="android-minSdkVersion" value="19" /> <preference name="android-installLocation" value="auto" /> <preference name="disallowOverscroll" value="true" /> </platform> <platform name="ios"> </platform> <plugin name="cordova-plugin-device" spec="^2.0.2" /> <plugin name="cordova-plugin-globalization" spec="1.11.0" /> <plugin name="cordova-plugin-google-analytics" spec="1.8.6" /> <plugin name="cordova-plugin-inappbrowser" spec="3.0.0" /> <plugin name="cordova-plugin-splashscreen" spec="5.0.3" /> <plugin name="cordova-plugin-statusbar" spec="2.4.3" /> <plugin name="cordova-plugin-whitelist" spec="1.3.4" /> <plugin name="cordova-plugin-network-information" spec="2.0.2" /> <plugin name="com.lampa.startapp" spec="6.1.6" /> <plugin name="cordova-plugin-firebase" spec="2.0.5" /> <plugin name="cordova-android-play-services-gradle-release" spec="^4.0.0"> <variable name="PLAY_SERVICES_VERSION" value="11.0.+" /> </plugin> <plugin name="cordova-android-firebase-gradle-release" spec="^4.0.0"> <variable name="FIREBASE_VERSION" value="11.0.+" /> </plugin> <plugin name="cordova-android-support-gradle-release" spec="3.0.1"> <variable name="ANDROID_SUPPORT_VERSION" value="26.+" /> </plugin>

有什么帮助吗?

谢谢,

塞尔吉

我已经使用两个插件解决了这些问题

ionic cordova plugin add cordova-plugin-androidx
ionic cordova plugin add cordova-plugin-androidx-adapter

非常感谢人!!

此页面是否有帮助?
0 / 5 - 0 等级