2016-04-06 71 views
0

我想將Google Analytics添加到我的Android應用程序(LibGDX)上。但我得到ClassCastException異常Android.app.Application不能轉換爲GoogleAnalyticsApp(libgdx)

04-06 15:15:07.359: E/AndroidRuntime(7564): java.lang.RuntimeException: 
Unable to start activity 
ComponentInfo{com.mygdx.one4all/com.mygdx.one4all.AndroidLauncher}: 
java.lang.ClassCastException: android.app.Application cannot be cast to 
com.mygdx.one4all.AnalyticsApp 

當我嘗試

@Override 
protected void onCreate(Bundle savedInstanceState) { 
//... 
    AnalyticsApp an = (AnalyticsApp) getApplication(); 
//... 

我AnalyticsApp:

package com.mygdx.one4all;  
import com.google.android.gms.analytics.GoogleAnalytics; 
import com.google.android.gms.analytics.Tracker; 
import com.mygdx.one4all.R.xml;  
import android.app.Application;  
public class AnalyticsApp extends Application { 
    private Tracker mTracker; 
    synchronized public Tracker getDefaultTracker() { 
     if (mTracker == null) { 
      GoogleAnalytics analytics = GoogleAnalytics.getInstance(this); 
      mTracker = analytics.newTracker(xml.global_tracker); 
     } 
     return mTracker; 
    } 
} 

人建議修改清單。但我有我的應用程序。

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.mygdx.one4all" 
    android:versionCode="9" 
    android:versionName="1.0" > 

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

    <uses-sdk 
     android:minSdkVersion="9" 
     android:targetSdkVersion="23" /> 

    <application   
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/GdxTheme" > 
     <activity 
      android:name="com.mygdx.one4all.AndroidLauncher" 
      android:configChanges="keyboard|keyboardHidden|orientation|screenSize" 
      android:label="@string/app_name" 
      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" /> 

     <meta-data 
      android:name="com.google.android.gms.version" 
      android:value="@integer/google_play_services_version" />   
    </application> 

    <application android:name=".AnalyticsApp" 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/GdxTheme"> 
    </application> 

</manifest> 

我在做什麼錯了?

回答

3

在你的情況下,你有兩個部分,這是錯誤的。 將它放在一個,並添加android:name屬性與您的應用程序類。

應該是這樣的:

<application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/GdxTheme" android:name="com.mygdx.one4all.AnalyticsApp">

+0

我有幾乎相同的部分。它不適合我。 ' <應用軟件Android:NAME = 「AnalyticsApp。」 機器人:allowBackup = 「真」 機器人:圖標= 「@繪製/ ic_launcher」 機器人:標籤= 「@字符串/ APP_NAME」 機器人:主題=「@ style/GdxTheme「> ' –

+0

你有2個應用部分,適合一個標籤 Lebedevsd

+0

是的!現在我懂了。你能編輯你的答案,並說清楚我應該使用一個?那麼我會將它標記爲最佳答案。 –

相關問題