java - Android Studio 上的 NoClassDefFoundError

标签 java android

我将其添加到我的 gradle 文件中:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:design:23.0.1'
}

这是我的 MainActivity.java :

public class MainActivity extends AppCompatActivity {

    private Toolbar toolbar;
    private TabLayout tabLayout;
    private ViewPager viewPager;

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


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

        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

        viewPager = (ViewPager) findViewById(R.id.viewpager);
        setupViewPager(viewPager);

        tabLayout = (TabLayout) findViewById(R.id.tabs);
        tabLayout.setupWithViewPager(viewPager);


    }

    private void setupViewPager(ViewPager viewPager) {
        ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
        adapter.addFragment(new OneFragment(), "ONE");
        adapter.addFragment(new TwoFragment(), "TWO");
        adapter.addFragment(new ThreeFragment(), "THREE");
        viewPager.setAdapter(adapter);
    }

    class ViewPagerAdapter extends FragmentPagerAdapter {
        private final List<Fragment> mFragmentList = new ArrayList<>();
        private final List<String> mFragmentTitleList = new ArrayList<>();

        public ViewPagerAdapter(FragmentManager manager) {
            super(manager);
        }

        @Override
        public Fragment getItem(int position) {
            return mFragmentList.get(position);
        }

        @Override
        public int getCount() {
            return mFragmentList.size();
        }

        public void addFragment(Fragment fragment, String title) {
            mFragmentList.add(fragment);
            mFragmentTitleList.add(title);
        }

        @Override
        public CharSequence getPageTitle(int position) {
            return mFragmentTitleList.get(position);
        }
    }
}

它给出了这个错误:

java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v7/internal/widget/TintManager;

在这一行:

tabLayout.setupWithViewPager(viewPager);

为什么我会收到此错误?我怎样才能解决这个问题?谢谢。

最佳答案

所有支持库必须是相同版本。尝试将 appcompat-v7support-v4 更改为 23.0.1 或设计为 23.1.1

注意:支持库和设计库的版本应该相同。

关于java - Android Studio 上的 NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37982732/

相关文章:

android - 适用于大型项目的 Jetpack Compose Activity 和可组合项

java - 来自除主布局之外的其他布局的小部件上的空指针异常

java - 如何在android中校准方向传感器?

java - SLF4J:无法加载类 "org.slf4j.impl.StaticLoggerBinder"

java - org.openqa.selenium.NoSuchElementException 无法定位元素 :method":"link text" ,"selector":"http://

java - 如何模拟正在测试同一类的另一个方法中调用的类的方法?

Android:使用正则表达式按标签过滤 Logcat

java - 无法创建Android客户端套接字

java - 如何将 ORC BytesColumnVector 值设置为 NULL?

java - 检测标签的正则表达式