2016-04-06 9 views
0

GoogleアナリティクスをAndroid(LibGDX)のアプリケーションに追加しようとしています。Android.app.ApplicationをGoogleAnalyticsApp(libgdx)にキャストできません

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; 
    } 
} 

人々がマニフェストを修正することをお勧め:私は

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

マイAnalyticsAppをしようとすると、しかし、私はClassCastExceptionが

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 

を取得します。しかし私はそこに私のアプリケーションを持っています。

<?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

あなたの場合、2つのセクションがありますが、それは間違っています。 これを1つにまとめ、Applicationクラスで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

それはこのようなものでなければなりません。それは私にとってはうまくいかない。 ' <アプリケーションアンドロイド:名= "AnalyticsApp。" アンドロイド:allowBackup = "true" を アンドロイド:アイコン= "@の描画可能/ ic_launcher" アンドロイド:ラベル= "@文字列/ APP_NAME" アンドロイド:テーマ=" @ style/GdxTheme ">

+0

2つのアプリケーションセクションがあり、1つのタグに収まる – Lebedevsd

+0

はい!今私はそれを得る。あなたの答えを編集し、を1つ使用する必要があることを明確にすることはできますか?私はそれを最高の答えとしてマークします。 –

関連する問題