错误:java.lang.NoClassDefFoundError Android [英] Error : java.lang.NoClassDefFoundError Android

查看:319
本文介绍了错误:java.lang.NoClassDefFoundError Android的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我遵循此教程来创建滑动式标签。但是我得到了上面的错误。

我的gradle依赖关系sturucture

 依赖关系{
编译fileTree(dir:'libs',include:['* .jar'])
testCompile'junit:junit:4.12'
compile'c​​om.android.support:appcompat -v7:23.1.1'
compile'c​​om.android.support:design:22.2.0'
}

这是我的文件。 MainActivity.java

  import android.support.design.widget.TabLayout ; 
导入android.support.v4.view.ViewPager;
导入android.support.v7.app.AppCompatActivity;
导入android.os.Bundle;
导入android.support.v7.widget.Toolbar;
导入android.view.Menu;
导入android.view.MenuItem;
$ b $ public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

工具栏工具栏=(工具栏)findViewById(R.id.toolbar);
setSupportActionBar(toolbar);


TabLayout tabLayout =(TabLayout)findViewById(R.id.tab_layout);
tabLayout.addTab(tabLayout.newTab()。setText(Tab 1)); //此行给出错误
tabLayout.addTab(tabLayout.newTab()。setText(Tab 2)); //此行给出错误
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);

final ViewPager viewPager =(ViewPager)findViewById(R.id.pager);
PageAdapter pageAdapter = new PageAdapter(getSupportFragmentManager());
viewPager.setAdapter(pageAdapter);
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener(){
@Override
public void onTabSelected(TabLayout.Tab tab){
viewPager.setCurrentItem(tab.getPosition());
}

@Override
public void onTabUnselected(TabLayout.Tab tab){

}

@Override
public void onTabReselected(TabLayout.Tab tab){
$ b}
});
}

}

而我的 PageAdapter.java 文件是

  import android.support.v4.app.Fragment; 
导入android.support.v4.app.FragmentManager;
导入android.support.v4.app.FragmentStatePagerAdapter;

public class PageAdapter extends FragmentStatePagerAdapter {

public PageAdapter(FragmentManager fm){
super(fm);
}

@Override
public Fragment getItem(int position){

switch(position){
case 0:
返回新的InstaPicSwipeTab();
情况1:
返回新的SongsDownloadSwipeTab();
}
返回null;
}

@Override
public int getCount(){
return 2;


这就是LogCat给我的

  12-08 00:27:24.452 11770-11770 / com.example.suraj.freewee E / AndroidRuntime:FATAL EXCEPTION:main 
过程:com.example.suraj.freewee,PID:11770
java.lang.NoClassDefFoundError:失败的解决方案:Landroid / support / v7 / internal / widget / TintManager;
。在android.support.design.widget.TabLayout $ TabView的<初始化>(TabLayout.java:1041)
。在android.support.design.widget.TabLayout.createTabView(TabLayout.java:582 )
at android.support.design.widget.TabLayout.addTabView(TabLayout.java:616)
at android.support.design.widget.TabLayout.addTab(TabLayout.java:334)
at android.support.design.widget.TabLayout.addTab(TabLayout.java:309)
at com.example.suraj.freewee.MainActivity.onCreate(MainActivity.java:23)
at android.app.Activity.performCreate(Activity.java:6237)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java :2369)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread $ hhandleMessage(ActivityThread.java:1344)
at android.os.Handler.dispatchMessag e(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run在java.lang.reflect.Method.invoke(本机方法)
(ZygoteInit.java:726)
。在com.android.internal。 os.ZygoteInit.main(ZygoteInit.java:616)
导致:java.lang.ClassNotFoundException:在路径中找不到类android.support.v7.internal.widget.TintManager:DexPathList [[zip文件/data/app/com.example.suraj.free在dalvik上
,nativeLibraryDirectories = [/ data / app / com.example.suraj.freewee-1 / lib / x86,/ vendor / lib,/ system / lib]]。 (ClassLoader.java:511)$ b $ java.util.ClassLoader.loadClass(ClassLoader.java:469)
at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
。在android.support.design.widget.TabLayout $ TabView的<初始化>(TabLayout.java:1041)
。在android.support.design.widget.TabLayout.createTabView(TabLayout.java:582 )在android.support.design上
.widget.TabLayout.addTabView(TabLayout.java:616)
at android.support.design.widget.TabLayout.addTab(TabLayout.java:334)
at android.support.design.widget.TabLayout .addTab(TabLayout.java:309)
在com.example.suraj.freewee.MainActivity.onCreate(MainActivity.java:23)
在android.app.Activity.performCreate(Activity.java:6237 )
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)$ B $处android.app.ActivityThread $ H.handleMessage android.app.ActivityThread.-wrap11(ActivityThread.java)
B(ActivityThread。
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app .ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Na tive方法)
at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616 )
Suppressed:java.lang.ClassNotFoundException:android.support.v7.internal.widget.TintManager $ b在java.lang.Class.classForName(本地方法)b $ b在java.lang.BootClassLoader .findClass(ClassLoader.java:781)
at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
在java.lang.ClassLoader.loadClass(ClassLoader.java:504)
... 19 more
导致:java.lang.NoClassDefFoundError:未找到使用引导类加载器的类;没有堆栈跟踪可用

如何解决这个错误?

解决方案

支持库和设计库的版本应该是相同的。



我改变了我的

  compile'c​​om.android.support:appcompat-v7:23.1.1'
$ b

  compile'c​​om.android.support:appcompat-v7 :23.0.1'

并为我解决问题。



注意:我的compileSdkVersion和buildToolVersion低于
compileSdkVersion 23
buildToolsVersion23.0.1


I am following this tutorial to create swipe tabs. But I get the above error.

My gradle dependencies sturucture

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:design:22.2.0'
}

Here are my files. MainActivity.java

import android.support.design.widget.TabLayout;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;

public class MainActivity extends AppCompatActivity {

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);


    TabLayout tabLayout = (TabLayout) findViewById(R.id.tab_layout);
    tabLayout.addTab(tabLayout.newTab().setText("Tab 1")); //this line gives error
    tabLayout.addTab(tabLayout.newTab().setText("Tab 2")); //this line gives error
    tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);

    final ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
    PageAdapter pageAdapter = new PageAdapter(getSupportFragmentManager());
    viewPager.setAdapter(pageAdapter);
    viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
    tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
        @Override
        public void onTabSelected(TabLayout.Tab tab) {
            viewPager.setCurrentItem(tab.getPosition());
        }

        @Override
        public void onTabUnselected(TabLayout.Tab tab) {

        }

        @Override
        public void onTabReselected(TabLayout.Tab tab) {

        }
    });
 }

}

And my PageAdapter.java file is

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;

public class PageAdapter extends FragmentStatePagerAdapter {

  public PageAdapter(FragmentManager fm) {
    super(fm);
  }

  @Override
  public Fragment getItem(int position) {

    switch (position) {
        case 0:
            return new InstaPicSwipeTab();
        case 1:
            return new SongsDownloadSwipeTab();
    }
    return null;
 }

 @Override
 public int getCount() {
    return 2;
 }
}

And this is what LogCat is giving me

12-08 00:27:24.452 11770-11770/com.example.suraj.freewee E/AndroidRuntime: FATAL EXCEPTION: main
                                                                           Process: com.example.suraj.freewee, PID: 11770
                                                                           java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v7/internal/widget/TintManager;
                                                                               at android.support.design.widget.TabLayout$TabView.<init>(TabLayout.java:1041)
                                                                               at android.support.design.widget.TabLayout.createTabView(TabLayout.java:582)
                                                                               at android.support.design.widget.TabLayout.addTabView(TabLayout.java:616)
                                                                               at android.support.design.widget.TabLayout.addTab(TabLayout.java:334)
                                                                               at android.support.design.widget.TabLayout.addTab(TabLayout.java:309)
                                                                               at com.example.suraj.freewee.MainActivity.onCreate(MainActivity.java:23)
                                                                               at android.app.Activity.performCreate(Activity.java:6237)
                                                                               at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
                                                                               at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
                                                                               at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
                                                                               at android.app.ActivityThread.-wrap11(ActivityThread.java)
                                                                               at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
                                                                               at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                               at android.os.Looper.loop(Looper.java:148)
                                                                               at android.app.ActivityThread.main(ActivityThread.java:5417)
                                                                               at java.lang.reflect.Method.invoke(Native Method)
                                                                               at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                                                                               at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
                                                                            Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v7.internal.widget.TintManager" on path: DexPathList[[zip file "/data/app/com.example.suraj.freewee-1/base.apk"],nativeLibraryDirectories=[/data/app/com.example.suraj.freewee-1/lib/x86, /vendor/lib, /system/lib]]
                                                                               at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
                                                                               at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
                                                                               at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
                                                                               at android.support.design.widget.TabLayout$TabView.<init>(TabLayout.java:1041) 
                                                                               at android.support.design.widget.TabLayout.createTabView(TabLayout.java:582) 
                                                                               at android.support.design.widget.TabLayout.addTabView(TabLayout.java:616) 
                                                                               at android.support.design.widget.TabLayout.addTab(TabLayout.java:334) 
                                                                               at android.support.design.widget.TabLayout.addTab(TabLayout.java:309) 
                                                                               at com.example.suraj.freewee.MainActivity.onCreate(MainActivity.java:23) 
                                                                               at android.app.Activity.performCreate(Activity.java:6237) 
                                                                               at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) 
                                                                               at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) 
                                                                               at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
                                                                               at android.app.ActivityThread.-wrap11(ActivityThread.java) 
                                                                               at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
                                                                               at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                               at android.os.Looper.loop(Looper.java:148) 
                                                                               at android.app.ActivityThread.main(ActivityThread.java:5417) 
                                                                               at java.lang.reflect.Method.invoke(Native Method) 
                                                                               at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                                                                               at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
                                                                            Suppressed: java.lang.ClassNotFoundException: android.support.v7.internal.widget.TintManager
                                                                               at java.lang.Class.classForName(Native Method)
                                                                               at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
                                                                               at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
                                                                               at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
                                                                                    ... 19 more
                                                                            Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available

How to solve this error?

解决方案

The version of support library and design library should be the same.

I changed my

compile 'com.android.support:appcompat-v7:23.1.1'

to

compile 'com.android.support:appcompat-v7:23.0.1'

and issue fixed for me.

Note: my compileSdkVersion and buildToolVersion is below compileSdkVersion 23 buildToolsVersion "23.0.1"

这篇关于错误:java.lang.NoClassDefFoundError Android的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆