无法投射应用程序

时间:2015-03-15 12:16:42

标签: android google-analytics android-manifest

我正在将Google Analytics v.4应用到我的应用中。 我在跟踪器方面遇到了问题。

这是代码

public class FactsActivity extends Activity {

    protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_fun_facts);

    Tracker t = ((Analytics) getApplication()).getTracker(
            Analytics.TrackerName.APP_TRACKER);        
    t.setScreenName("OLOLO");       
    t.send(new HitBuilders.AppViewBuilder().build());        

我的行

出错了
 Tracker t = ((Analytics) getApplication()).getTracker(Analytics.TrackerName.APP_TRACKER);

它是:" 不可转换的类型:无法投射' android.app.Application'到' com.tomtom.facts.Analytics '

我一直在寻找解决方案,正如我所见,我应该修改我的AndroidManifest.xml以包含" android:name = ..."进入"应用"标签。但我无法做到。它会出现错误:' com.tomtom.facts.Analytics'无法分配给' android.app.Application'

请帮忙!我完全被卡住了。

此处的Google Analytics

public class Analytics extends Activity {

public enum TrackerName {
    APP_TRACKER,
    GLOBAL_TRACKER,
    E_COMMERCE_TRACKER,
}

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("UA-*******-1")
                : (trackerId == TrackerName.GLOBAL_TRACKER) ? analytics.newTracker(R.xml.global_tracker)
                : analytics.newTracker(R.xml.ecommerce_tracker);
        mTrackers.put(trackerId, t);
    }
    return mTrackers.get(trackerId);
}

}

1 个答案:

答案 0 :(得分:0)

右边的行是:

Tracker t = (Tracker) getApplication().getTracker(Analytics.TrackerName.APP_TRACKER);

问题可能是你把括号放在错误的地方。您试图转换getApplication()返回的对象。 此外,你可能需要转换为Tracker而不是Analytics