Android 无法强制转换应用程序

Android 无法强制转换应用程序,android,google-analytics,android-manifest,Android,Google Analytics,Android Manifest,我正在我的应用程序中实施Analytics v.4。 我在找追踪器时遇到了问题 这是密码 public class FactsActivity extends Activity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_fun_facts); T

我正在我的应用程序中实施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=…”包含在“application”标记中。但我做不到。它因错误而停止:“com.tomtomtom.facts.Analytics”不能分配给“android.app.application”

请帮帮我!我完全卡住了

这是分析课

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);
}
公共类分析扩展活动{
公共枚举跟踪名{
应用程序跟踪程序,
全球跟踪系统,
电子商务跟踪器,
}
HashMap mTrackers=新HashMap();
同步跟踪程序getTracker(TrackerName trackerId){
如果(!mTrackers.containsKey(trackerId)){
GoogleAnalytics analytics=GoogleAnalytics.getInstance(this);
Tracker t=(trackerId==TrackerName.APP_Tracker)?analytics.newTracker(“UA-*********-1”)
:(trackerId==TrackerName.GLOBAL\u TRACKER)?analytics.newTracker(R.xml.GLOBAL\u TRACKER)
:analytics.newTracker(R.xml.ecommerce\u tracker);
mTrackers.put(trackerId,t);
}
返回mTrackers.get(trackerId);
}

}

右行是:

Tracker t = (Tracker) getApplication().getTracker(Analytics.TrackerName.APP_TRACKER);
问题可能是括号放错了位置。您试图强制转换
getApplication()
返回的对象。
此外,您可能必须强制转换到
跟踪器
而不是
分析

我认为您可能会错误地使用api…您试图让
分析
成为
应用程序
,但它不能。它返回一个错误:无法解析方法getTracker(…getTracker方法在Analitics类中设置为syncronized,但不能从其他类中使用。我应该怎么做?