2016-03-21 48 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.** 
相關問題