web-dev-qa-db-fra.com

EXCEPTION FATALE: Java.lang.NoClassDefFoundError principal: Android.support.v7.internal.widget.TintManager

Je reçois une erreur lorsque j'exécute mon projet. Je suivais juste ce tutoriel et l'ai utilisé dans mon projet.

mon code qui est exactement pareil dans le tutoriel

public class MainEventActivity extends AppCompatActivity {

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

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

    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);
    }
}

J'appelle MainEventActivity comme ceci:

btnNext.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View view) {
                Intent i = new Intent(MainActivity.this, MainEventActivity.class);
                startActivity(i);
                finish();
            }
        });

mon journal des erreurs:

12-01 08:00:29.903  22530-22530/com.erlawkward.albarol.eventlocatorapp
E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Java.lang.NoClassDefFoundError: Android.support.v7.internal.widget.TintManager
            at Android.support.design.widget.TabLayout$TabView.<init>(TabLayout.Java:1145)
            at Android.support.design.widget.TabLayout.createTabView(TabLayout.Java:635)
            at Android.support.design.widget.TabLayout.addTabView(TabLayout.Java:669)
            at Android.support.design.widget.TabLayout.addTab(TabLayout.Java:365)
            at Android.support.design.widget.TabLayout.addTab(TabLayout.Java:340)
            at Android.support.design.widget.TabLayout.setTabsFromPagerAdapter(TabLayout.Java:624)
            at Android.support.design.widget.TabLayout.setupWithViewPager(TabLayout.Java:595)
            at com.erlawkward.albarol.eventlocatorapp.activity.activity.MainEventActivity.onCreate(MainEventActivity.Java:41)
            at Android.app.Activity.performCreate(Activity.Java:5104)
            at Android.app.Instrumentation.callActivityOnCreate(Instrumentation.Java:1080)
            at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2144)
            at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2230)
            at Android.app.ActivityThread.access$600(ActivityThread.Java:141)
            at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1234)
            at Android.os.Handler.dispatchMessage(Handler.Java:99)
            at Android.os.Looper.loop(Looper.Java:137)
            at Android.app.ActivityThread.main(ActivityThread.Java:5041)
            at Java.lang.reflect.Method.invokeNative(Native Method)
            at Java.lang.reflect.Method.invoke(Method.Java:511)
            at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:793)
            at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:560)
            at dalvik.system.NativeStart.main(Native Method)

erreur dans cette ligne:

    tabLayout.setupWithViewPager(viewPager);
35
ErlAl

Toutes les bibliothèques de support doivent être de la même version. Essayez de changer soit appcompat-v7 et support-v4 en 23.0.1 ou design en 23.1.1

56
AsafK

Si vous téléchargez une version supérieure de la bibliothèque de support, gradle utilise la version supérieure silencieusement même si vous avez défini comme 23.1.1.

Tu peux vérifier gradlew app:dependencies -q si la version correcte est utilisée ou non.

Pour corriger son transfert de version supérieure, définissez force = true à toutes les bibliothèques de support comme ci-dessous.

compile ('com.Android.support:support-v4:23.1.1'){
    force = true;
}
compile ('com.Android.support:appcompat-v7:23.1.1'){
    force = true;
}
compile ('com.Android.support:design:23.1.1'){
    force = true;
}
compile ('com.Android.support:cardview-v7:23.1.1'){
    force = true;
}
compile ('com.Android.support:recyclerview-v7:23.1.1'){
    force = true;
}
4
Youngjae

J'ai résolu un problème similaire en changeant ma dépendance de:

compilez 'com.Android.support:design:23.1.1'

à

compilez 'com.Android.support:design:23.+'

Mes unités à la fin étaient de cette façon:

compile 'com.Android.support:appcompat-v7:23.1.1'
compile 'com.Android.support:support-v4:23.0.0'
compile 'com.Android.support:cardview-v7:23.0.0'
compile 'com.Android.support:design:23.+'
2

J'ai résolu ce problème en ajoutant la compilation "com.Android.support:design:23.+" bien que mes dépendances de prise en charge soient similaires

Avant

   compile 'com.Android.support:appcompat-v7:23.1.1'
   compile 'com.Android.support:support-v4:23.1.1' 
   compile 'com.Android.support:design:23.1.1'

Après - cela fonctionne pour moi

   compile 'com.Android.support:appcompat-v7:23.1.1'
   compile 'com.Android.support:support-v4:23.1.1' 
   compile 'com.Android.support:design:23.+'
1
livemaker

Je pense que c'est parce que la lib "compile" com.mcxiaoke.volley: library-aaa: 1.0.0 "" utilisée dans votre gradle, y compris la version différente de 'com.Android.support::' comme défini dans votre gradle.

vous devez donc le faire comme:

compile ('com.mcxiaoke.volley:library-aaa:1.0.0') {
    transitive = false
}
1
Du Shunpeng
compile 'com.Android.support:appcompat-v7:23.4.0'
compile 'com.Android.support:design:23.4.0'

Vous devez utiliser la même version pour la dépendance comme ci-dessus

1
user7118090

essayez avec set all support lib avec la même version par exemple

compile 'com.Android.support:appcompat-v7:23.1.1'
compile 'com.Android.support:recyclerview-v7:23.1.1'
compile 'com.Android.support:design:23.1.1'
0
Vikram

Semble qu'ils ont remplacé TintManager par AppCompatDrawableManager.

Au moins, je me suis assuré que j'ai utilisé partout la même version de la bibliothèque de support (24.0.0) et cela ne fonctionnait toujours pas jusqu'à ce que je remplace juste tous les endroits où TintManager était utilisé avec AppCompatDrawableManager.

Et ici AppCompatDrawableManager a toujours la balise TintManager.

0
shtolik

compiler 'com.Android.support:appcompat-v7:23.2.0' compiler 'com.Android.support:design:23.2.0' compiler 'com.Android.support:recyclerview-v7:23.2.0' compiler 'com. Android.support:support-v4:23.2.0 'compile' com.Android.support:cardview-v7:23.2.0 '

0
Issac Balaji