2016-03-18 10 views
12

tutto stava funzionando bene fino a quando ho aggiornato il mio file Gradle e ora il mio tablayout si blocca a causa di errore:TabLayout in crash dopo l'aggiornamento libreria di supporto al 23.2.1

Java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v7/widget/TintManager; at android.support.design.widget.TabLayout$TabView.(TabLayout.java:1185) at android.support.design.widget.TabLayout.createTabView(TabLayout.java:656) at android.support.design.widget.TabLayout.addTabView(TabLayout.java:695) at android.support.design.widget.TabLayout.addTab(TabLayout.java:386) at android.support.design.widget.TabLayout.addTab(TabLayout.java:361) at android.support.design.widget.TabLayout.setTabsFromPagerAdapter(TabLayout.java:645) at android.support.design.widget.TabLayout.setupWithViewPager(TabLayout.java:616) at com.example.ScrollableTabsActivity.onCreate(ScrollableTabsActivity.java:307) at android.app.Activity.performCreate(Activity.java:6033) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2288) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2397) at android.app.ActivityThread.access$800(ActivityThread.java:151) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1310) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5268) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:902) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:697) Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v7.widget.TintManager" on path: DexPathList[[zip file "/data/app/com.example-1/base.apk"],nativeLibraryDirectories=[/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.(TabLayout.java:1185) at android.support.design.widget.TabLayout.createTabView(TabLayout.java:656) at android.support.design.widget.TabLayout.addTabView(TabLayout.java:695) at android.support.design.widget.TabLayout.addTab(TabLayout.java:386) at android.support.design.widget.TabLayout.addTab(TabLayout.java:361) at android.support.design.widget.TabLayout.setTabsFromPagerAdapter(TabLayout.java:645) at android.support.design.widget.TabLayout.setupWithViewPager(TabLayout.java:616)

Ecco il mio file di gradle

apply plugin: 'com.android.application' 

android { 
compileSdkVersion 23 
buildToolsVersion "23.0.2" 

defaultConfig { 
    applicationId "com.example" 
    minSdkVersion 11 
    targetSdkVersion 23 
    versionCode 1 
    versionName "1.0" 
} 
buildTypes { 
    release { 
     minifyEnabled false 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
    } 
} 
} 

dependencies { 
compile fileTree(dir: 'libs', include: ['*.jar']) 
testCompile 'junit:junit:4.12' 
compile 'com.android.support:appcompat-v7:23.2.1' 
compile 'com.android.support:design:23.2.0' 
compile 'com.android.support:cardview-v7:23.2.1' 
compile 'com.android.support:recyclerview-v7:23.2.1' 
compile 'com.mcxiaoke.volley:library:[email protected]' 
compile 'com.github.hotchemi:stringpicker:0.0.2' 
compile files('libs/devsmartlib.jar') 
compile 'com.nineoldandroids:library:2.4.0' 
compile 'com.daimajia.easing:library:[email protected]' 
compile 'com.daimajia.androidanimations:library:[email protected]' 
compile project(':lib') 
} 

Please help me dove sbaglio

+0

è l'ultima versione di buildToolsVersion ?? – Fakher

+0

non l'ho aggiornato da 23.0.1 e anche dopo il rollback sto ricevendo lo stesso errore –

+0

Non sono sicuro, ma penso che devi modificare la compilazione in Your gradle alla versione corrente: compile 'com.android.support:design : 23.2.1 ' – Opiatefuchs

risposta

35

dipendenze cambiano fatto il trucco, com.android.support:support-v4:23.2.0 appena aggiunto e aggiornata versione strumenti di compilazione a 23.0.2

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

non so il motivo per cui alcune persone segnate la mia domanda è negativa, comunque questo potrebbe aiutare qualcuno

+3

23.2.0 è rotto, utilizzare 23.2.1. http://developer.android.com/tools/support-library/index.html –

-1

Per prima cosa creare una nuova attività, ma non l'attività vuota e si sceglie l'attività tabed, poi fare come ho fatto io ..

passo 1: creare tre attività frammento eliminare prima di tutto, dai ogni attività frammento e scrivere questo codice per ogni attività

package com.yourpakagename.tabedactivity; 
import android.content.Context; 
import android.net.Uri; 
import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 


public class layout1 extends Fragment { 
public layout1() { 
// Required empty public constructor 
} 


@Override 
public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 

} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
        Bundle savedInstanceState) { 
// Inflate the layout for this fragment 
return inflater.inflate(R.layout.fragment_layout12, container, false); 
//changes in each activity-->R.layout.fragment_layout_name<---- 
} 
} 

fase 2: e, infine, nella vostra attività a schede Non abbiamo bisogno di queste due funzioni

public static class PlaceholderFragment extends Fragment { 

private static final String ARG_SECTION_NUMBER = "section_number"; 

public PlaceholderFragment() { 
} 


public static PlaceholderFragment newInstance(int sectionNumber) { 
    PlaceholderFragment fragment = new PlaceholderFragment(); 
    Bundle args = new Bundle(); 
    args.putInt(ARG_SECTION_NUMBER, sectionNumber); 
    fragment.setArguments(args); 
    return fragment; 
} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    View rootView = inflater.inflate(R.layout.fragment_main, container, false); 
    TextView textView = (TextView) rootView.findViewById(R.id.section_label); 
    textView.setText(getString(R.string.section_format, getArguments().getInt(ARG_SECTION_NUMBER))); 
    return rootView; 
} 
} 

punto 3: e, infine, cambiare la funzione sectionpageradapter con questo codice questo è tutto ->

public class SectionsPagerAdapter extends FragmentPagerAdapter { 

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

@Override 
public Fragment getItem(int position) { 
    // getItem is called to instantiate the fragment for the given page. 
    // Return a PlaceholderFragment (defined as a static inner class below). 
    //delete return PlaceholderFragment.newInstance(position + 1); 
    switch (position) 
    { 
     case 0: 
      return new layout1(); 
     case 1: 
      return new layout2(); 
     case 2: 
      return new layout3(); 
     default: 
      return new layout1(); 
    } 
} 

@Override 
public int getCount() { 
    // Show 3 total pages. 
    return 3; 
} 

@Override 
public CharSequence getPageTitle(int position) { 
    switch (position) { 
     case 0: 
      return "SECTION 1"; 
     case 1: 
      return "SECTION 2"; 
     case 2: 
      return "SECTION 3"; 
    } 
    return null; 
} 
} 
9

Tutte le librerie di supporto devono avere la stessa versione. 23.2.1 o 23.1.1 o qualsiasi altra cosa, ma non è possibile mescolare le versioni.

ext.supportLibVersion = "23.2.1" 
// design includes recyclerview-v7 and appcompat-v7, which includes support-v4 
compile "com.android.support:design:$supportLibVersion" 
compile "com.android.support:cardview-v7:$supportLibVersion" 
+0

upvoted per il commento che design include appompat-v7 –

+0

"Tutte le librerie di supporto devono avere la stessa versione" è l'istruzione chiave. Grazie per la pubblicazione. – bvmobileapps

Problemi correlati