Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
安卓-应用程序崩溃,出现“故障”;java.lang.ClassCastException“;_Java_Android_Google Analytics_Classcastexception - Fatal编程技术网

安卓-应用程序崩溃,出现“故障”;java.lang.ClassCastException“;

安卓-应用程序崩溃,出现“故障”;java.lang.ClassCastException“;,java,android,google-analytics,classcastexception,Java,Android,Google Analytics,Classcastexception,我在应用程序中使用a来实现分析,但我可能做错了什么,导致应用程序与java.lang.ClassCastException 这是谷歌提供的: // Obtain the shared Tracker instance. AnalyticsApplication application = (AnalyticsApplication) getApplication(); mTracker = application.getDefaultTracker(); 这是我所做的更改,因为我使用的是片段

我在应用程序中使用a来实现分析,但我可能做错了什么,导致应用程序与
java.lang.ClassCastException

这是谷歌提供的:

// Obtain the shared Tracker instance.
AnalyticsApplication application = (AnalyticsApplication) getApplication();
mTracker = application.getDefaultTracker();
这是我所做的更改,因为我使用的是片段

// This is where I get the error
AnalyticsApplication application = (AnalyticsApplication) getContext().getApplicationContext();
mTracker = application.getDefaultTracker();
更新:错误发生在此行:

AnalyticsApplication application = (AnalyticsApplication) getContext().getApplicationContext();
这是我的日志

FATAL EXCEPTION: main
Process: com.incorp.labs.appname, PID: 14095
java.lang.ClassCastException: android.app.Application cannot be cast to com.incorp.labs.appname.Helper.AnalyticsTracker
  at com.incorp.labs.appname.OneFragment.onCreateView(OneFragment.java:126)
更新2:这是清单文件

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.incorp.labs.appname">

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="com.android.vending.BILLING" />

<application
    android:allowBackup="true"
    android:icon="@mipmap/newlogops"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/MyMaterialTheme">
    <meta-data
        android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />

    <activity
        android:name=".Splash"
        android:screenOrientation="portrait" />
    <activity
        android:name=".MainActivity"
        android:screenOrientation="portrait"
        android:windowSoftInputMode="adjustPan" />
    <activity
        android:name=".OneFragment"
        android:screenOrientation="portrait"
        android:windowSoftInputMode="adjustPan" />
    <activity
        android:name=".TwoFragment"
        android:screenOrientation="portrait" />
    <activity
        android:name=".Feedback"
        android:screenOrientation="portrait"
        android:windowSoftInputMode="adjustPan" />
    <activity
        android:name=".FourFragment"
        android:screenOrientation="portrait" />
    <activity
        android:name=".SplashTimer"
        android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

    <activity
        android:name="com.google.android.gms.ads.AdActivity"
        android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
        android:theme="@android:style/Theme.Translucent" />

    <service android:name=".FirebaseMessagingService">
        <intent-filter>                     
            <action android:name="com.google.firebase.MESSAGING_EVENT" />
             
        </intent-filter>
    </service>

    <activity android:name=".AboutActivity"></activity>
</application>

       
 

只需更改以下内容:-

AnalyticsTracker application = (AnalyticsTracker) getContext().getApplicationContext();
为此:-

AnalyticsApplication application = (AnalyticsApplication) getContext().getApplicationContext();

这是发生在我们最好的人身上的明显错误之一

我认为您正在尝试使用上下文对象(getApplicationContext())作为应用程序对象

尝试以下操作:编辑

AnalyticsApplication application = (AnalyticsApplication) getActivity().getApplication();
您可以从片段中调用包含该片段的活动。获取活动时,可以使用示例中的getApplication()函数

我希望有帮助

编辑2

从这个答案中可以看出:来自Commonware用户

AndroidManifest.xml文件不包含自定义应用程序 子类,所以Android使用默认的 (android.app.Application)

添加android:name=“auc.games2.Analytics.AnalyticsApplication” 属性到您的元素


除了实现
扩展应用程序
类之外,还需要告诉Android系统将哪个类用作应用程序类。为此,请在清单中设置应用程序类的名称:

<application
        android:name="your.package.AnalyticsApplication"


1)2)根据文档,只有当代码试图将对象强制转换为非实例的子类时,才会引发此问题。分析应用与应用AnalyticsTracker@Lokesh我更改了类名,但这应该不是问题,对吗?我认为您没有在清单中声明自定义应用程序。显示清单。@VladMatvienko是的,正确我想我没有,请怎么做?我故意更改了类名,这有什么区别吗?这与类名无关。事实上,您正试图将一个
AnalyticsApplication
对象强制转换为
AnalyticsTracker
对象。因此,出现
ClassCastException
。在你发布的谷歌代码中,这是正确的。不,我做了所有更改,但仍然有相同的错误,请检查更新的答案,我指定了行。我认为你现在不应该收到错误。你能清理、重建并再次运行吗?不幸的是,这并不令人担忧,我也把这行写错了。它必须是一个AnalyticsApplication类,而不是AnalyticsTracker。这不是问题所在,我已经修复了它,但仍然没有问题。在onCreate()中,您在哪个方法中编写了这行代码?在片段附加到活动之前,它不会工作,因此您应该覆盖onAttached()或onResume()方法。另外,请检查此答案,它可能会有所帮助:这似乎是解决方案,但当我添加
android:name=“…”时,我得到了“未解析类”
我的软件包如下所示:
com.incorp.labs.appname
@ThorvaldÓlavsenV。显示您是如何添加的。如下所示:
android:name=“com.incorp.labs.appname.AnalyticsApplication”
@ThorvaldÓlavsenV.,您确定
AnalyticsApplication
在包
com.incorp.labs.appname>中吗?它现在已修复!该类位于我忽略的子文件夹中