【问题标题】:Cannot cast class when using Google Analytics in Eclipse在 Eclipse 中使用 Google Analytics 时无法转换类
【发布时间】:2016-06-30 18:21:02
【问题描述】:

我认为我的 Eclipse 项目中的所有元素都正确,但我仍然收到此错误:

java.lang.ClassCastException: android.app.Application 不能被强制转换 到 cam.main.AnalyticsApplication

这是 AnalyticsApplication 代码:

package cam.main;

public class AnalyticsApplication extends Application {

    private Tracker tracker;

    public AnalyticsApplication() {
        super();
    }

    synchronized public Tracker getDefaultTracker() {
        if (tracker == null) {
            GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
            tracker = analytics.newTracker(R.xml.analytics);
        }
        return tracker;
    }
}

这是清单:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="cam.main"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="6"/>

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

    <application
        android:icon="@drawable/bot_img_1"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
        <activity            android:name="cam.main.SplashScreen"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <- other activities from the app ->

    </application>

    <application android:name="cam.main.AnalyticsApplication">
    </application>

</manifest>

我的起始活动 (StartMenu) 的 OnCreate 方法上有这段代码

AnalyticsApplication application = (AnalyticsApplication) getApplication();
Tracker mTracker = application.getDefaultTracker();

我不知道它是否重要,但我在同一个文件中有 AnalyticsApplication 和 StartMenu。

是否需要在 AnalyticsApplication 内创建一个 Activity 或其他什么?

【问题讨论】:

  • 你能显示你的 AndroidManifest 文件的扩展剪切吗?在清单中看到 2 个 标记很奇怪。可能这是您问题的关键。
  • 那么我该如何声明 Analytics 应用程序?我想我需要声明主应用程序(我正在开发的应用程序)和分析应用程序

标签: android eclipse google-analytics


【解决方案1】:

只需将您的 android:name="cam.main.AnalyticsApplication" 参数包含到现有的应用程序标记中,如下所示:

<application
    android:name="cam.main.AnalyticsApplication"
    android:icon="@drawable/bot_img_1"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
    <activity            android:name="cam.main.SplashScreen"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <- other activities from the app ->

</application>

由于第二个标签,您的自定义应用程序类无法正常工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    相关资源
    最近更新 更多