在Android 4.4中运行时应用程序崩溃(NoClassDefFoundError)

问题描述:

应用程序在Android 4.4中运行并显示NoClassDefFoundError时崩溃。但在其他Android版本中正确工作到6.0。我在这里使用片段活动。错误如下所示。在Android 4.4中运行时应用程序崩溃(NoClassDefFoundError)

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$13', referenced from method com.quicknip.restaurant3.Fragment.LoginPatternFragment.loginService 
    E/dalvikvm: Could not find class 'com.quicknip.restaurant3.Fragment.LoginPatternFragment$1', 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$1 
    at com.quicknip.restaurant3.Fragment.LoginPatternFragment.onCreateView(LoginPatternFragment.java:59) 

最后我找到答案。

通过更换

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' 

这对我的作品。

创建一类像这样

class MyApplication extends Application { 

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

在你AndroidManifest,添加name属性到应用程序标签:

<application name=".MyApplication" 
+0

我正在使用片段活动以及如何在Manifest中添加片段活动? –

+0

你不需要在清单中添加片段android – Abhishek

+0

我在清单中添加了我的第一个活动。我的第一个活动将开始片段活动。在片段活动中的问题。 –