2016-03-21 14 views
1

私のアプリケーションでGoogleアナリティクスとプロガードを使用しています。 プロガードを有効にしなくても正常に動作するアプリケーション。 しかし、Proguardを有効にしてGoogleAnalyticsを使用して署名したApkを作成すると、次のエラーが発生しています。Googleアナリティクスとプロガードを使用しているときにNoSuchMethodError

私はたくさんのGoogle検索を行ったが、解決策を見つけることができなかった。そのインターフェイスjの()を見つけることができないようでログインし、あなたのエラーから

public class MyApplication extends Application { 
    public static final String TAG = MyApplication.class 
      .getSimpleName(); 

    private static MyApplication mInstance; 

    public static synchronized MyApplication getInstance() { 
     return mInstance; 
    } 

    @Override 
    public void onCreate() { 
     super.onCreate(); 
     mInstance = this; 

     AnalyticsTrackers.initialize(this); 
     AnalyticsTrackers.getInstance().get(AnalyticsTrackers.Target.APP); 


    } 

    public synchronized Tracker getGoogleAnalyticsTracker() { 
     AnalyticsTrackers analyticsTrackers = AnalyticsTrackers.getInstance(); 

     return analyticsTrackers.get(AnalyticsTrackers.Target.APP); 
    } 

    /*** 
    * Tracking screen view 
    * 
    * @param screenName screen name to be displayed on GA dashboard 
    */ 
    public void trackScreenView(String screenName) { 
     Tracker t = getGoogleAnalyticsTracker(); 

     // Set screen name. 
     t.setScreenName(screenName); 

     // Send a screen view. 
     t.send(new HitBuilders.ScreenViewBuilder().build()); 

     GoogleAnalytics.getInstance(this).dispatchLocalHits(); 
    } 

    /*** 
    * Tracking exception 
    * 
    * @param e exception to be tracked 
    */ 
    public void trackException(Exception e) { 
     if (e != null) { 
      Tracker t = getGoogleAnalyticsTracker(); 

      t.send(new HitBuilders.ExceptionBuilder() 
          .setDescription(
            new StandardExceptionParser(this, null) 
              .getDescription(Thread.currentThread().getName(), e)) 
          .setFatal(false) 
          .build() 
      ); 
     } 
    } 

    /*** 
    * Tracking event 
    * 
    * @param category event category 
    * @param action action of the event 
    * @param label label 
    */ 
    public void trackEvent(String category, String action, String label) { 
     Tracker t = getGoogleAnalyticsTracker(); 

     // Build and send an Event. 
     t.send(new HitBuilders.EventBuilder().setCategory(category).setAction(action).setLabel(label).build()); 
    } 

java.lang.NoSuchMethodError: No interface method j()I in class Landroid/content/res/XmlResourceParser; or its super classes (declaration of 'android.content.res.XmlResourceParser' appears in /system/framework/framework.jar) at com.google.android.gms.analytics.internal.zzp.zza(Unknown Source) at com.google.android.gms.analytics.internal.zzp.zzS(Unknown Source) at com.google.android.gms.analytics.GoogleAnalytics.newTracker(Unknown Source) at com.xxxx.xxx.googleAnalytics.a.a(Unknown Source) at com.xxx.xxx.googleAnalytics.MyApplication.onCreate(Unknown Source) at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1017)

+0

あなたは解決策を見つけましたか? –

答えて

0

GoogleAnalyticsクラスを助けてください。

しかし、これはGoogleのライブラリのエラーであれば、これはあなたに

を助けるには、クラスcom.googleを保ちます。 {*;} **

-keepclassmembers class com.google。 {*;} **

あなたはまだ不明何らかの理由でこの

-dontwarnのcom.google

0

を使用してください、私たちはこれを追加する必要がありましたエラーを取得している場合:

-keep class org.xmlpull.v1.** { *;} 
-dontwarn org.xmlpull.v1.** 
関連する問題