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);
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
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;
}
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.+'
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.+'
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
}
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
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'
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.
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 '