web-dev-qa-db-ja.com

グーグルアナリティクスを試しているときに「エラー:シンボル変数xmlが見つかりません」

私は自分のAndroidアプリの1つにGoogleアナリティクスを実装しようとしています。アナリティクスとAndroidアプリ開発はまったく新しいです。与えられた例を試してみようと思いました。 Googleデベロッパーサイトにあります。コードをコンパイルしようとすると、分析アプリケーションJava file、mTracker = analytics.newTracker(R.xml.global_tracker); line、.xmlが強調表示されます。投稿しました。ここにコード全体。

これはAnalyticsApplication.Javaです

package com.google.samples.quickstart.analytics;

import Android.app.Application;

import com.google.Android.gms.analytics.GoogleAnalytics;
import com.google.Android.gms.analytics.Logger;
import com.google.Android.gms.analytics.Tracker;

public class AnalyticsApplication extends Application {
  private Tracker mTracker;

  synchronized public Tracker getDefaultTracker() {
    if (mTracker == null) {
      GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
      // To enable debug logging use: adb Shell setprop log.tag.GAv4 DEBUG
      mTracker = analytics.newTracker(R.xml.global_tracker);
    }
    return mTracker;
  }
}

私のGlobal_tracker.xmlファイル

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <!--Replace placeholder ID with your tracking ID-->
    <string name="ga_trackingId">UA-XXXXXXXX-X</string>

    <!--Enable automatic activity tracking-->
    <bool name="ga_autoActivityTracking">true</bool>

    <!--Enable automatic exception tracking-->
    <bool name="ga_reportUncaughtExceptions">true</bool>
</resources>

私のマニフェストファイル

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
    package="com.google.samples.quickstart.analytics">

    <uses-permission Android:name="Android.permission.INTERNET"/>
    <uses-permission Android:name="Android.permission.ACCESS_NETWORK_STATE"/>

    <application
        Android:name=".AnalyticsApplication"
        Android:allowBackup="true"
        Android:icon="@mipmap/ic_launcher"
        Android:label="@string/app_name"
        Android:theme="@style/AppTheme">
        <activity
            Android:name=".MainActivity"
            Android:label="@string/app_name">
            <intent-filter>
                <action Android:name="Android.intent.action.MAIN"/>
                <category Android:name="Android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
    </application>
</manifest>

私はすでにこの号で2日間を過ごしましたが、先に進むためにあなたの提案が必要です。

ありがとう。

15
faz

Resフォルダーにxmlという名前の新しいフォルダーを作成し、ファイルをそのフォルダーに移動する必要があります。また、質問ではGlobal_tracker.xmlではなくglobal_tracker.xmlと記述しているため、レイアウト名を正しく呼び出すようにしてください。これはとても重要です。

お役に立てば幸いです。

16
Hussein El Feky

置くのを忘れないか確認してください

プラグインを適用する: 'com.google.gms.google-services'

アプリレベルでbuild.gradle

ブルートフォースソリューションは、実際の分析コードを提供するだけです。

GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
Tracker tracker = analytics.newTracker("UA-XXXXXXXXX-X");

Android従来の手順に従うのではなく

GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
Tracker tracker = analytics.newTracker(R.xml.global_tracker);

これは問題を修正するかなり野蛮な方法ですが、 newTracker() メソッドは実際のstring値のみを必要とするため、確実に機能しますGoogleAnalyticsトラッキングコードの。

公式リファレンスドキュメント 同じパラダイムの例もあります。

0
Abel Callejo

また、gcmおよびgoogleアナリティクス用のPlay開発者サービスライブラリバージョン10.2.1でも同じ問題が発生しました。問題は、@ Hussein El Fekyで説明されているようにglobal_tracker.xmlを追加するだけで修正されます。 =答えますが、その修正だけでは問題は解決しません。また、strings.xmlにさらに2行追加しました。

<string name="global_tracker">UA-XXXXXXXX-XX</string>
<string name="gcm_defaultSenderId">PROJECT-NO</string>
0
Devidas M Das

から下位バージョンへのダウングレードを実行していたときに同様の問題が発生しました

com.google.gms:google-services:3.0.0

com.google.gms:google-services:1.3.1

(理由を聞かないでください(CIビルドスクリプトを急いで修正するための仮定でした))

したがって、ダウングレードの変更を行っていないことを確認してください

0
evasyuk