2014-05-01 25 views
6

Continuo a ricevere questo errore e causa l'arresto anomalo della mia app. Cercando di implementare il nuovo layout di aggiornamento swipe v4. Ho aggiornato la libreria di supporto + sdk. Qual'è il problema?Impossibile trovare la classe 'android.support.v4.widget.SwipeRefreshLayout'

Impossibile trovare la classe 'android.support.v4.widget.SwipeRefreshLayout', fa riferimento dal metodo ...... onCreate

import android.support.v4.widget.SwipeRefreshLayout; 
... 
private SwipeRefreshLayout swipeLayout; 

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

    setContentView(R.layout.home_page_list); 
swipeLayout = (SwipeRefreshLayout) findViewById(R.id.container); 
    swipeLayout.setColorScheme(android.R.color.holo_blue_bright, 
      android.R.color.holo_green_light, 
      android.R.color.holo_orange_light, 
      android.R.color.holo_red_light); 
    swipeLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { 
     @Override 
     public void onRefresh() { 
      swipeLayout.setRefreshing(false); 
     } 
    }); 

XML

<android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/container" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context="com.devrim.ythaber.HomeActivity" 
tools:ignore="MergeRootFrame" > 

<ScrollView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" > 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" > 

     <ImageView 
      android:id="@+id/thumb" 
      android:layout_width="100dp" 
      android:layout_height="100dp" 
      android:contentDescription="@string/app_name" /> 

     <RelativeLayout 
      android:id="@+id/relativeLayout1" 
      android:layout_width="wrap_content" 
      android:layout_height="290dp" 
      android:layout_centerVertical="true" 
      android:layout_marginLeft="5dp" 
      android:layout_marginRight="5dp" 
      android:orientation="vertical" > 

      <!-- android:layout_toRightOf="@+id/thumb" --> 

     </RelativeLayout> 

     <TextView 
      android:id="@+id/title" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="left" 
      android:ellipsize="end" 
      android:fontFamily="sans-serif-light" 
      android:maxLines="2" 
      android:shadowColor="@color/dropshadow" 
      android:shadowDx="2" 
      android:shadowDy="2" 
      android:shadowRadius="2" 
      android:text="@string/title" 
      android:textAllCaps="false" 
      android:textAppearance="?android:attr/textAppearanceSmallPopupMenu" 
      android:textColor="@color/titlecolour" 
      android:textSize="35sp" 
      android:textStyle="italic" 
      android:typeface="sans" > 
     </TextView> 

     <TextView 
      android:id="@+id/category" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/title" 
      android:ellipsize="end" 
      android:fontFamily="sans-serif-light" 
      android:gravity="right" 
      android:maxLines="1" 
      android:paddingRight="5dp" 
      android:paddingTop="10dp" 
      android:textAppearance="?android:attr/textAppearanceSmallPopupMenu" 
      android:textColor="@color/catcolour" 
      android:textSize="17sp" 
      android:textStyle="italic" 
      android:typeface="sans" > 
     </TextView> 
    </LinearLayout> 
</ScrollView> 
</android.support.v4.widget.SwipeRefreshLayout> 

logcat completo:

05-01 21:31:27.390: W/dalvikvm(11452): VFY: unable to find class referenced in signature (Landroid/support/v4/widget/SwipeRefreshLayout;) 
05-01 21:31:27.390: E/dalvikvm(11452): Could not find class 'android.support.v4.widget.SwipeRefreshLayout', referenced from method com.devrim.ythaber.HomeActivity.onCreate 
05-01 21:31:27.390: W/dalvikvm(11452): VFY: unable to resolve check-cast 619 (Landroid/support/v4/widget/SwipeRefreshLayout;) in Lcom/devrim/ythaber/HomeActivity; 
05-01 21:31:27.390: W/dalvikvm(11452): Link of class 'Lcom/devrim/ythaber/HomeActivity$1;' failed 
05-01 21:31:27.440: W/dalvikvm(11452): threadid=1: thread exiting with uncaught exception (group=0x4166ee18) 
05-01 21:31:27.440: E/AndroidRuntime(11452): FATAL EXCEPTION: main 
05-01 21:31:27.440: E/AndroidRuntime(11452): Process: com.devrim.ythaber, PID: 11452 
05-01 21:31:27.440: E/AndroidRuntime(11452): java.lang.NoClassDefFoundError: android.support.v4.widget.SwipeRefreshLayout 
05-01 21:31:27.440: E/AndroidRuntime(11452): at com.devrim.ythaber.HomeActivity.onCreate(HomeActivity.java:56) 
05-01 21:31:27.440: E/AndroidRuntime(11452): at android.app.Activity.performCreate(Activity.java:5312) 
05-01 21:31:27.440: E/AndroidRuntime(11452): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1111) 
05-01 21:31:27.440: E/AndroidRuntime(11452): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2552) 
05-01 21:31:27.440: E/AndroidRuntime(11452): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2653) 
05-01 21:31:27.440: E/AndroidRuntime(11452): at android.app.ActivityThread.access$800(ActivityThread.java:156) 
05-01 21:31:27.440: E/AndroidRuntime(11452): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1355) 
05-01 21:31:27.440: E/AndroidRuntime(11452): at android.os.Handler.dispatchMessage(Handler.java:102) 
05-01 21:31:27.440: E/AndroidRuntime(11452): at android.os.Looper.loop(Looper.java:157) 
05-01 21:31:27.440: E/AndroidRuntime(11452): at android.app.ActivityThread.main(ActivityThread.java:5872) 
05-01 21:31:27.440: E/AndroidRuntime(11452): at java.lang.reflect.Method.invokeNative(Native Method) 
05-01 21:31:27.440: E/AndroidRuntime(11452): at java.lang.reflect.Method.invoke(Method.java:515) 
05-01 21:31:27.440: E/AndroidRuntime(11452): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1069) 
05-01 21:31:27.440: E/AndroidRuntime(11452): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:885) 

risposta

0

Verificare di essere la libreria di supporto di Android che è installato nel tuo gestore di SDK è 19.1 e non solo 19.

Se è così e hai provato ad aggiornare il tuo progetto alla nuova libreria, ho scoperto che, ciò non funziona correttamente. Crea un nuovo progetto di applicazione Android vuoto e copia la libreria di supporto da/libs/over sul tuo progetto esistente e riprova.

3

Se si utilizza graddle, è possibile controllare di aver aggiornato la configurazione per utilizzare la versione 19.1 della libreria di supporto di Android. Vedi seguente riga:

dependencies { 
    compile 'com.android.support:support-v4:19.1.+' 
} 
3

Per me, il problema era che uno dei miei progetti di biblioteca stava usando V13 della libreria di supporto: android-support-v13.jar.

Così guardare fuori per un messaggio come questo nei log:

Found both android-support-v4 and android-support-v13 in the dependency list. 
Because v13 includes v4, using only v13. 

Se vedi che avvertimento, assicurarsi che il progetto di libreria include anche la libreria di supporto più recente, in caso contrario la libreria v4 potrebbe avere superato da una vecchia libreria v13 (che ovviamente non include il nuovo SwipeRefreshLayout).

+0

come hai risolto il problema? sono bloccato allo stesso. –

+0

Non ho ancora avuto la possibilità di provare questo perché sono occupato a fare qualcos'altro @rogerthatcode –

Problemi correlati