Android Studio 中的新 Relic - newrelic.properties - 变体

Gil*_*yof 7 android gradle newrelic android-studio

我正在将 New Relic 集成到我的项目中(使用 Android Studio 和 Gradle),它有 2 个变体。每个变体都有自己生成的令牌,我将其存储在每个变体的string.xml文件中。

New Relic 文档中,它说明了以下内容:

在项目的根目录 (projectname/app) 中,添加包含以下行的 newrelic.properties 文件:

com.newrelic.application_token=generated_token
Run Code Online (Sandbox Code Playgroud)

问题是,如果我这样做,如何为正确的变体显示正确的令牌?如果此文件必须出现在项目根目录中,则我无法为每个变体创建一个,因此我被迫对两个变体使用相同的标记,这不符合我的要求。

任何见解将不胜感激。

Gil*_*yof 4

好的,在联系 New Relic 的支持团队后,到目前为止,显然还没有直接的解决方案,尽管他们表示已经提出了功能请求,因此这个问题可能很快就会得到解决。

据我了解,需要这个文件的原因是,当使用 ProGuard 混淆的生产版本发生异常时,New Relic 系统可以显示未混淆的错误日志。

New Relic 系统在该文件的帮助下,会将 ProGuard mapping.txt 文件上传到 New Relic 服务器,并根据指定的令牌将其与您的应用程序关联。有了这个,New Relic 可以取消混淆堆栈跟踪,并显示带有实际类和方法名称(而不是 a、b、c 等)的描述性堆栈跟踪。

作为解决方法,我被告知如果我手动上传映射文件,我可以完全放弃该文件。

映射文件可以在以下位置找到:

build/outputs/proguard/release/mapping.txt  
Run Code Online (Sandbox Code Playgroud)

要手动上传文件,请通过命令行执行以下操作:

curl -v -F proguard=@"<path_to_mapping.txt>" -H "X-APP-LICENSE-KEY:<APPLICATION_TOKEN>" https://mobile-symbol-upload.newrelic.com/symbol
Run Code Online (Sandbox Code Playgroud)

必须对使用 ProGuard 混淆的每个变体(通常是发布版本)执行此操作。

来源

希望这对其他人有帮助。

  • 您好,请问这个问题解决了吗?我想为不同的变体使用不同的新遗物属性文件? (2认同)