运行 在 android 4.4 中启动时应用程序崩溃(NoClassDefFoundError)

Application is Crashing when running starts in android 4.4 ( NoClassDefFoundError )

当 运行 在 android 4.4 中启动并显示 NoClassDefFoundError 时应用程序崩溃。但在 6.0 之前的其他 android 版本中可以正常工作。我在这里使用片段activity。错误如下所示。

  public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);

        setContentView(R.layout.activity_main);
        if (savedInstanceState == null) {
            FragmentManager fragmentManager = getFragmentManager();
            FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
            LoginPatternFragment loginFragement = new LoginPatternFragment();
            fragmentTransaction.add(R.id.fragement, loginFragement);
            fragmentTransaction.commit();
        }
    }

错误:

 E/memtrack: Couldn't load memtrack module (No such file or directory)
    E/android.os.Debug: failed to load memtrack module: -2
    E/dalvikvm: Could not find class 'com.quicknip.restaurant3.Fragment.LoginPatternFragment', referenced from method com.quicknip.restaurant3.Fragment.LoginPatternFragment.loginService
    E/dalvikvm: Could not find class 'com.quicknip.restaurant3.Fragment.LoginPatternFragment', referenced from method com.quicknip.restaurant3.Fragment.LoginPatternFragment.onCreateView
    E/GMPM: Task exception on worker thread: java.lang.NoClassDefFoundError: com.google.android.gms.R$string: com.google.android.gms.measurement.zza.<init>(Unknown Source)
    E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.quicknip.restaurant3, PID: 2733
    java.lang.NoClassDefFoundError: com.quicknip.restaurant3.Fragment.LoginPatternFragment
    at com.quicknip.restaurant3.Fragment.LoginPatternFragment.onCreateView(LoginPatternFragment.java:59)

像这样创建一个class

class MyApplication extends Application {

@Override
protected void attachBaseContext(Context base) {
  super.attachBaseContext(base);
  MultiDex.install(this);
}
}

在您的 AndroidManifest 中,将 name 属性添加到您的应用程序标签:

<application name=".MyApplication"

终于找到答案了

通过替换

compile 'com.google.android.gms:play-services:8.4.0'

compile 'com.google.android.gms:play-services-analytics:8.4.0'
compile 'com.google.android.gms:play-services-gcm:8.4.0'
compile 'com.google.android.gms:play-services-location:8.4.0'
compile 'com.google.android.gms:play-services-plus:8.4.0'

这对我有用。