在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"
我正在使用片段活动以及如何在Manifest中添加片段活动? –
你不需要在清单中添加片段android – Abhishek
我在清单中添加了我的第一个活动。我的第一个活动将开始片段活动。在片段活动中的问题。 –