0

I got this crash reported in developer console for an Android 2.3.3 - 2.3.7 device:

java.lang.NoSuchMethodError: newSingleThreadExecutor
at android.app.QueuedWork.singleThreadExecutor(QueuedWork.java:82)
at android.app.ContextImpl$SharedPreferencesImpl.enqueueDiskWrite(ContextImpl.java:3245)
at android.app.ContextImpl$SharedPreferencesImpl.access$100(ContextImpl.java:2869)
at android.app.ContextImpl$SharedPreferencesImpl$EditorImpl.apply(ContextImpl.java:3087)
at com.google.android.gms.analytics.internal.zzai$zza.zzbq(Unknown Source)
                                                   zzlN
at com.google.android.gms.analytics.internal.zzaf.zzlx(Unknown Source)
                                               zzb
at com.google.android.gms.analytics.internal.zzaf.zziJ(Unknown Source)
                                               zza
                                               zzh
                                               zza
                                               zzl
at com.google.android.gms.analytics.internal.zzc.zza(Unknown Source)
                                              zza
                                              zza
                                              zza
                                              zzj
at com.google.android.gms.analytics.internal.zzc.zzbg(Unknown Source)
                                              zze
at com.google.android.gms.analytics.internal.zzl.zzjT(Unknown Source)
at com.google.android.gms.analytics.internal.zzl.start(Unknown Source)
                                              zzf
                                              zzb
at com.google.android.gms.analytics.internal.zzb.start(Unknown Source)
at com.google.android.gms.analytics.internal.zzf.<init>(Unknown Source)
at com.google.android.gms.analytics.internal.zzf.zzjw(Unknown Source)
                                              zzaa
                                              zza
at com.google.android.gms.analytics.GoogleAnalytics.zza(Unknown Source)
                                                 getInstance
                                                 setDryRun
                                                 newTracker
at ab.androidcommons.application.BaseApplication.activityResumed(Unknown Source)
                                              getTracker
                                              sendEvent
                                              sendScreenView
                                              sendException
                                              setDimensions
at ab.androidcommons.application.BaseApplication.activityResumed(Unknown Source)
                                              getTracker
                                              sendEvent
                                              sendScreenView
                                              sendException
                                              setDimensions
at ab.androidcommons.ui.activities.BaseAppCompatActivity.onCreate(Unknown Source)
at com.tools.screenshot.ui.activities.LicenseCheck.onCreate(Unknown Source)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1082)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1699)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1754)
at android.app.ActivityThread.access$1500(ActivityThread.java:156)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1000)
at android.os.Handler.dispatchMessage(Handler.java:130)
at android.os.Looper.loop(SourceFile:351)
at android.app.ActivityThread.main(ActivityThread.java:3821)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:538)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:969)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:727)
at dalvik.system.NativeStart.main(Native Method)

The crashing activity LicenceCheck is extending BaseAppCompatActivity:

public class LicenseCheck extends BaseAppCompatActivity {
}

Here is BaseAppCompatActivity:

public abstract class BaseAppCompatActivity extends AppCompatActivity {

// abstract methods
protected abstract String getScreenName();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ThemeUtils.setTheme(this);
    ContextUtils.getAnalyticsApplication(this).sendScreenView(getScreenName());
}

Where and how can I fix this issue?

Ankit Batra
  • 823
  • 9
  • 16

1 Answers1

0

Proguard will obfuscate your code. You need to edit the rules of your proguard file as following:

-dontwarn com.google.android.gms.**
-keep class com.google.android.gms.**

cf this question: Proguard and error

Community
  • 1
  • 1
Distwo
  • 11,569
  • 8
  • 42
  • 65