Crashlytics 插件破坏了我的项目

Crashlytics plugin destroys my project

我正在尝试使用他们在 Android Studio 中提供的插件将 Crashlytics 集成到我的应用程序中。 当我开始应用更改步骤时,我单击下一步,然后它说我应该构建项目。当我尝试构建时,我开始得到

找不到资源错误

并获得

错误:(2) 解析错误 XML:前缀不能绑定到保留的命名空间名称之一

列出错误的 xml 位于我的一个库项目的构建文件夹中,它的名称是 values.xml 在我 运行崩溃插件。 此外,在 运行 插件之后,即使在 运行 gradle clean 之后,我也无法从 IDE 或从控制台使用 gradle 构建项目,我也无法执行 git 还原,因为它说 none 个文件已更改。将我的项目恢复到以前状态的唯一方法是删除文件夹并从远程再次克隆它。

有人知道这是怎么回事吗? 这个插件对我的构建文件夹做了什么?

附加信息: 我正在使用 Beta 频道的最新版本 Android studio。 我今天下载了最新的 Crashlytics 插件。 这些是我的 gradle 构建中设置的 sdk 和构建工具的版本 minSdkVersion 18 targetSdk版本 19 编译SDK版本21 buildToolsVersion "21.1.2"

我修好了。如果我没记错的话,这是我尝试过的:

  • ionic build android(失败)
  • ionic platform remove android
  • cordova platform remove android
  • cordova plugin remove cordova-crashlytics-plugin
  • ./platforms/android/cordova/clean
  • cordova platform add android
  • ionic build android(成功)
  • cordova plugin add https://github.com/4sh-projects/cordova-crashlytics-plugin
  • ionic build android(成功)

如果这对您不起作用,请告诉我,我将不得不再次查看。我做了一些额外的步骤试图弄清楚这一切所以你。

感谢同事的一些 git 指点,我终于设法解决了我的问题。 实际上我较新的设法使插件工作但按照文档手动实现了 crashlytics。

这是避免再次克隆项目的解决方案。

问题是由文件 com_crashlytics_export_strings.xml 的资源合并造成的 与其余资源 xmls。 当你 运行 插件甚至在按下下一步将更改应用到文件插件之前,插件将在里面创建这个 xml src\main\res\values\

请注意,在我的例子中,这些值是在库项目中创建的,因为这是唯一具有默认项目结构的项目。包括应用程序在内的所有其他项目都具有自定义结构,显然 crashlytics 插件不尊重这些自定义。 git 我的问题是 Android studio 看不到这个文件,因为它是由其他工具添加的,并且 git 工作目录是干净的,因为 Android studio 没有正确调用 git 添加到此文件。

另请注意,当 运行 安装插件时,会在名为 crashlytics-build.properties 的资产文件夹中创建另一个文件。此文件不会破坏构建,但可能会产生一些不良影响。这个文件显然是用来"identify individual builds of your Android application"的。为什么他们使用这些数据而不是清单中提供的数据(在我的例子中由我们的构建脚本正确填充)对我来说仍然是一个谜,我怀疑可能有许多错误报告打开询问为什么他们的版本名称不同......

这里是一个文档link,用于手动添加 crashlytics https://dev.twitter.com/fabric/android/integrating