Firebase通知不适用于实验gradle

时间:2016-07-20 20:48:27

标签: firebase-notifications gradle-experimental

Fire Base消息传递停止使用实验gradle。

如何重新创建问题

创建一个支持firebase通知的项目

后续 https://firebase.google.com/docs/notifications/android/console-audience

构建并运行。工作非常好

将gradle更改为实验版本。按照Hello Jni示例中的步骤更改为实验gradle。忘记现在添加C代码只需进行更改以支持实验gradle。遵循

https://codelabs.developers.google.com/codelabs/android-studio-jni/index.html?index=..%2F..%2Findex#0

构建并运行:Firebase无法再初始化。查看日志并搜索表示Firebase初始化失败的firebase :(

Gradle版本(文件 - >项目结构,项目):2.10

Android插件版本(文件 - >项目结构,项目):无

SDK版本:“Android SDK工具”修订版(工具 - > Android - > SDK管理器):25.1.7

模块编译Sdk版本(文件 - >项目结构,您的模块):24.0.0

模块构建工具版本(文件 - >项目结构,您的模块):24.0.0

请解决任何问题。

提前致谢

谢谢和问候,

PB

2 个答案:

答案 0 :(得分:0)

只是添加到xp-vit的答案(这对我来说非常有帮助)你可以在你的firebase项目中添加另一个android客户端,它不使用实验gradle为你生成XML然后你只需要改变“google_app_id”字段。这可以在json文件中的{YOUR_CLIENT} / client_info / mobilesdk_app_id下找到。 可能有助于避免错别字。

答案 1 :(得分:0)

面临同样的问题。这是一个很难的错误。在将Firebase日志设置为详细模式之前,您不知道您的Firebase活动尚未发送。

对于那些不知道如何启用Firebase日志的人: 在终端窗口的AndroidStudio中执行以下命令:

adb shell setprop log.tag.FA VERBOSE
adb shell setprop log.tag.FA-SVC VERBOSE
adb logcat -v time -s FA FA-SVC

多亏了我发现了一个错误: Missing google_app_id. Firebase Analytics disabled

我已经对所有内容进行了双重检查,但之后我在Android错误跟踪器中发现了一张票据,说实验游戏干扰了Firebase Analytics。

为了解决此问题,我已将'com.android.tools.build:gradle-experimental:0.8.3'迁移到最新的稳定常规Gradle插件'com.android.tools.build:gradle:2.2.3'

一切都像魅力一样。

所以这就是你从实验gradle插件迁移到最新的稳定插件v.2.2.3:

1。更新您的gradle脚本。

http://tools.android.com/tech-docs/new-build-system/gradle-experimental/migrate-to-stable在本文中,在sdk mnager中安装所有内容后,您需要执行以下操作:

项目级 build.gradle文件中,将gradle插件的类路径依赖项更改为2.2.0或更高版本

buildscript {
  repositories {...}
  dependencies {
      classpath 'com.android.tools.build:gradle:2.2.3'
  }
}

切换到Stable Gradle DSL

如果您要从实验性Gradle迁移,则只需按照本指南本节中的说明进行操作即可。由于Gradle的稳定版本不使用组件模型机制,因此您需要更改模块级build.gradle文件中的某些DSL:

  1. 模块级 build.gradle文件的顶部,您需要应用插件的稳定版本,如下所示: 申请插件:'com.android.application'
  2. - 如果您有任何模块,则第一行应为: apply plugin: 'com.android.library'

    1. 删除模型{}块,包括其开括号和右大括号。不应将android {}块包含在任何其他DSL元素中。

    2. 从minSdkVersion和targetSdkVerion中删除“.apiLevel”后缀:

    3. minSdkVersion 16

      targetSdkVersion 23

      1. 将proguardFiles DSL更改为以下内容: proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

      2. 从productFlavor配置中删除create(“...”)。例如,使用以下DSL创建“flavor1”产品风格:

      3. - 我没有那些

        productFlavors {
            flavor1 {
                applicationId “com.app”
            }
            ...
        }
        
        1. 仅在ndk {}块中定义abiFilters - 注释掉该块中的所有其他内容。 stable插件使用一个新的externalNativeBuild {} DSL将Gradle链接到你的CMake或ndk-build项目,并设置工具链参数和编译器标志。 - 此处我注释了整个ndk{}
        2. 2。创建一个CMake构建脚本。轻松

          https://developer.android.com/studio/projects/add-native-code.html#create-cmake-script 确切地告诉它如何被告知。在右侧项目侧窗口右键单击我们的模型。新文件。创造它。粘贴它。我只有一个C ++类,所以我有一个非常简单的CMakeLists.txt文件:

          cmake_minimum_required(VERSION 3.4.1)
          add_library( 
                   lib-name
          
                   SHARED
          
                   my_cpp_class.cpp )
          

          3。使用Gradle链接C ++项目

          1. 从IDE左侧打开“项目”窗格,然后选择Android视图。
          2. 右键单击要链接到本机库的模块(例如应用程序模块),然后从菜单中选择“使用Gradle链接C ++项目”。您应该看到类似于下面显示的对话框
          3. 从下拉菜单中选择CMake或ndk-build。 如果选择CMake,请使用“项目路径”旁边的字段为外部CMake项目指定CMakeLists.txt脚本文件。 enter image description here
          4. !重要提示:如果您有任何其他模块 - 请为项目中的每个模块执行以下步骤!

            就是这样。清理您的项目并重新构建它。 现在,您可以使用Firebase Analytics。

            基本上我没有创建或告诉任何新内容,所以所有信用都归Google所有。 我只是把两篇关于如何做的文章放在一起,并用我的评论写下了这些步骤。 它并不难,它会给你带来更多的好处,因为实验性的gradle可能会在将来的任何时候引起一些问题。