当前位置: 首页 > 知识库问答 >
问题:

如何在构建中设置Google Analytics tracker ID。gradle而不是xml?

成浩漫
2023-03-14

所有环境特定的密钥,如服务器URL和SDK密钥,目前都保存在build.gradle文件中。这样做的目的是使用构建类型在开发环境和生产环境之间轻松切换。

我将Google Analytics添加到应用程序中,该应用程序通过包含跟踪器ID的res/xml/app_tracker.xml文件进行配置:

<代码>

如何将跟踪器ID移动到构建中。gradle文件的构建类型为每个环境定义不同的GA跟踪器ID?

我在build.gradle中尝试过:

buildTypes {
  release {
    resValue "string", "GOOGLE_ANALYTICS_TRACKER_ID", "UA-12345678-9"
  }
}

哪个自动生成xml文件:

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <!-- Automatically generated file. DO NOT MODIFY -->

    <!-- Values from build type: debug -->
    <string name="GOOGLE_ANALYTICS_TRACKER_ID" translatable="false">UA-12345678-9</string>

</resources>

但是这在app\u跟踪器中似乎不起作用。xml文件:

<string name="ga_trackingId" translatable="false">@string/GOOGLE_ANALYTICS_TRACKER_ID</string>

共有1个答案

叶声
2023-03-14

从你问的问题,你想为不同的环境维护多个跟踪器ID。

因此,不需要在构建中维护UA-XXX。gradle,我们需要在应用程序类中指定具有不同UA-XXX的多个xml文件

private static final String PROPERTY_ID = "UA-XXXXX-Y";


  public enum TrackerName {
    PROD_ENV_TRACKER, // Tracker used for Production Environment.
    DEV_ENV_TRACKER, // Tracker used for Devlopment Environment.
    STAGE_ENV_TRACKER, // Tracker used for Stage Environment.
  }

  HashMap<TrackerName, Tracker> mTrackers = new HashMap<TrackerName, Tracker>();

  public AnalyticsSampleApp() {
    super();
  }
  synchronized Tracker getTracker(TrackerName trackerId) {
    if (!mTrackers.containsKey(trackerId)) {

      GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
      Tracker t = (trackerId == TrackerName.PROD_ENV_TRACKER) ? analytics.newTracker(PROPERTY_ID)
          : (trackerId == TrackerName.DEV_ENV_TRACKER) ? analytics.newTracker(R.xml.dev_env_tracker)
              : analytics.newTracker(R.xml.stage_env_tracker);
      mTrackers.put(trackerId, t);

    }
    return mTrackers.get(trackerId);
  }
}
 类似资料:
  • 我有一个生成物料清单(BOM)的项目。当我执行gradle build时,它生成一个空jar,只包含一个META-INF文件夹。 但是,我可以将pom(BOM)正确地发布到Nexus,同时还会产生上传空罐子的副作用。 根据 maven 插件文档 https://docs.gradle.org/current/userguide/maven_plugin.html 我们应该能够设置打包: 打包归档任

  • 如何设置可从生成访问的全局变量。格雷德尔和任务?

  • 本文向大家介绍android-gradle 如何在build.gradle中配置构建类型,包括了android-gradle 如何在build.gradle中配置构建类型的使用技巧和注意事项,需要的朋友参考一下 示例 您可以build.gradle在android {}块内的模块级文件中创建和配置构建类型。            

  • 问题内容: 使用jersey jersey.java.net当URI中没有接受标头或.xml后缀时,如何将JSON设置为默认序列化而不是XML? 问题答案: 您可以在@Produces批注中为每种媒体类型分配质量索引。如果可以同时允许XML和JSON,则可以执行以下操作以使Jersey偏爱JSON:

  • 我是Vuforiaajawali的新手,我正在尝试从该站点构建和运行该示例。问题是当我使用命令时: C:/... /RajawaliVuforia/RajawaliVuforia/./gradlew干净程序集发布上传存档 ,我总是得到根项目RajawaliVuforia中找不到的错误任务“干净”。 如果可能的话,请帮忙! 谢谢