我正在尝试在我的项目中使用Google Analytics。并且找不到newTracker方法。此外,我不需要电子商务跟踪器,所以我把它拿出来。但是现在我无法通过获取错误来结束语句
: is expected here''
我评论了错误显示在下方。
import android.app.Application;
import com.google.analytics.tracking.android.GoogleAnalytics;
import com.google.analytics.tracking.android.Tracker;
import java.util.HashMap;
public class AnalyticsTracker1 extends Application {
private static final String PROPERTY_ID = "UA-xxxxxxx-1";
public enum TrackerName {
APP_TRACKER, // Tracker used only in this app.
GLOBAL_TRACKER, // Tracker used by all the apps from a company. eg: roll-up tracking.
}
HashMap<TrackerName, Tracker> mTrackers = new HashMap<TrackerName, Tracker>();
synchronized Tracker getTracker(TrackerName trackerId) {
if (!mTrackers.containsKey(trackerId)) {
GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
Tracker t = (trackerId == TrackerName.APP_TRACKER) ? analytics.newTracker(PROPERTY_ID)
: (trackerId == TrackerName.GLOBAL_TRACKER) ? analytics.newTracker(R.xml.global_tracker); //: expected here
mTrackers.put(trackerId, t);
}
return mTrackers.get(trackerId);
}
}
答案 0 :(得分:1)
Tracker t = (trackerId == TrackerName.APP_TRACKER) ? analytics.newTracker(PROPERTY_ID)
: (trackerId == TrackerName.GLOBAL_TRACKER) ? analytics.newTracker(R.xml.global_tracker) : null;
像这样修改你的代码,如果trackerID不等于任何枚举,那么它应该返回null。由于您尚未完成第二个三元运算符,因此出现错误。 对于第二个问题,我假设您已将谷歌分析jar导入您的项目。 如果它不是它不会工作。 在这种情况下的解决方案:
4。添加
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
到您的清单的应用程序标签。
它会起作用。
我现在检查了它的工作情况。