Error de Android al inflar la clase SwipeRefreshLayout
-
21-12-2019 - |
Pregunta
Estoy trabajando en una aplicación en este momento que usa 3 pestañas con un fragmento en cada una y estoy intentando implementar SwipeRefreshLayout en cada uno de estos fragmentos.Creo que he creado esto correctamente, pero sigo recibiendo los errores:
android.view.InflateException: Binary XML file line #1: Error inflating class SwipeRefreshLayout
Caused by: java.lang.ClassNotFoundException: Didn't find class "android.view.SwipeRefreshLayout" on path: DexPathList[[zip file "/data/app/com.ryan.brooks.fropllc.frop.app-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.ryan.brooks.fropllc.frop.app-1, /vendor/lib, /system/lib]]
at com.ryan.brooks.fropllc.frop.app.whatsGoingOnFragment.onCreateView(whatsGoingOnFragment.java:23)
Ahora no tengo absolutamente ninguna idea de qué está causando esto.Si alguien pudiera ayudarme, sería tremendamente apreciado.
Aquí está el diseño de mi fragmento donde estoy implementando SwipeRefreshLayout:
<SwipeRefreshLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/swipe_refresh_whats_going_on">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#343434"></ScrollView>
</SwipeRefreshLayout>
Y aquí está mi clase de fragmento donde llamo a SwipeRefreshLayout.
public class WhatsGoingOnFragment extends Fragment {
private SwipeRefreshLayout swipeLayout;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.whats_going_on_fragment, container, false);
// Retrieve the SwipeRefreshLayout and ListView instances
swipeLayout = (SwipeRefreshLayout) view.findViewById(R.id.swipe_refresh_whats_going_on);
// Set the color scheme of the SwipeRefreshLayout by providing 4 color resource ids
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);
return view;
}
}
Tanto los diseños como la estructura de clases son exactamente iguales para los 3 fragmentos, solo que con cambios en el nombre de identificación.Realmente no tengo idea de qué está pasando aquí.Nuevamente, ¡cualquier ayuda es muy apreciada!
Solución
Debe utilizar un nombre de paquete completo para SwipeRefreshLayout
:
<android.support.v4.widget.SwipeRefreshLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.ryan.brooks.fropllc.frop.app.whatsGoingOnFragment"
android:id="@+id/swipe_refresh_whats_going_on">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#343434"></ScrollView>
</android.support.v4.widget.SwipeRefreshLayout>