2016-03-21 45 views
1

我在我的应用程序中使用Google Analytics和proguard。 应用程序工作正常,但不启用proguard。 但是当我创建带有Proguard的已签名Apk以及GoogleAnalytics时,我收到以下错误消息。使用GoogleAnalytics和proguard时的NoSuchMethodError

我搜索了很多,但找不到解决方案。请帮助

Google分析类:

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

从你的错误日志似乎接口Ĵ()无法找到。

但如果这是谷歌图书馆的错误,这将帮助你

保持类com.google。 {*;} **

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

如果仍然收到错误,请使用此

-dontwarn com.google

0

无论出于何种原因未知,我们必须补充一点:

-keep class org.xmlpull.v1.** { *;} 
-dontwarn org.xmlpull.v1.** 
相关问题