面临同样的问题。这是一个很难的错误。在您将 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 错误跟踪器中找到了一张票,说实验性 gradle 会干扰 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'
}
}
切换到稳定的 Gradle DSL
如果您要从实验性 Gradle 迁移,则只需按照指南本节中的说明进行操作。由于 Gradle 的稳定版不使用组件模型机制,因此您需要更改模块级 build.gradle 文件中的一些 DSL:
- 在模块级build.gradle 文件的顶部,您需要应用插件的稳定版本,如下所示:
'com.android.application'
- 如果你有任何模块 - 它们的第一行应该如下: apply plugin: 'com.android.library'
删除 model{} 块,包括它的左大括号和右大括号。android{} 块不应包含在任何其他 DSL 元素中。
从 minSdkVersion 和 targetSdkVerion 中删除“.apiLevel”后缀:
minSdkVersion 16
targetSdkVersion 23
将 proguardFiles DSL 更改为以下内容:
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
从您的 productFlavor 配置中删除 create(“...”) 。例如,使用以下 DSL 创建“flavor1”产品风味:
-我没有那些
productFlavors {
flavor1 {
applicationId “com.app”
}
...
}
- 仅在 ndk{} 块中定义 abiFilters - 注释掉该块中的所有其他内容。稳定插件使用新的 externalNativeBuild{} DSL 将 Gradle 链接到您的 CMake 或 ndk-build 项目,并设置工具链参数和编译器标志。
- 在这里我注释掉了整个
ndk{}
块
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++ 项目
- 从 IDE 左侧打开 Project 窗格并选择 Android 视图。
- 右键单击要链接到本机库的模块,例如应用程序模块,然后从菜单中选择使用 Gradle 链接 C++ 项目。您应该会看到一个类似于下图的对话框
- 从下拉菜单中,选择 CMake 或 ndk-build。如果您选择 CMake,请使用项目路径旁边的字段为您的外部 CMake 项目指定 CMakeLists.txt 脚本文件。
!重要提示:如果您有任何其他模块 - 为项目中的每个模块执行这些步骤!
就是这样。清理您的项目并重新构建它。现在您可以使用 Firebase Analytics。
基本上我没有创造或告诉任何新的东西,所以所有的功劳归于谷歌。我只是把两篇关于如何做的文章放在一起,并用我的评论写下了步骤。这并不难,它会给你带来更多的好处,因为实验性的 gradle 可能会在将来的任何时候引起一些问题。