Cajón de navegación – El diseño del cajón no se puede instanciar
Estoy tratando de implementar un cajón de navegación en mi aplicación, pero estoy teniendo problemas graves con él. Ahora mi problema es que quiero poner mi MainContent dentro de un diseño de cajón como este:
<android.support.v4.widget.DrawerLayout android:id = "@+id/drawer_layout" xmlns:android = "http://schemas.android.com/apk/res/android" android:layout_width = "match_parent" android:layout_height = "match_parent" > <FrameLayout [...] </FrameLayout> </android.support.v4.widget.DrawerLayout>
Pero obtengo este código de error
- Actualizar widget a la medianoche (12 AM) falla
- Cómo crear streaming de audio en vivo entre dos móviles con Android usando la programación de socket ..?
- ¿Podemos tener texto ineditable en edittext
- Obtener instancia de actividad
- ¿Cualesquiera buenas herramientas de ORM para el desarrollo de Android?
Las clases siguientes no pudieron ser instanciadas: – android.support.v4.widget.DrawerLayout (Open Class, Show Exception)
Estos son los detalles de la excepción:
java.lang.ClassNotFoundException: android.support.v4.widget.DrawerLayoutImpl at com.intellij.util.lang.UrlClassLoader.findClass(UrlClassLoader.java:148) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:760) at java.lang.ClassLoader.defineClass(ClassLoader.java:642) at com.intellij.util.lang.UrlClassLoader._defineClass(UrlClassLoader.java:195) at com.intellij.util.lang.UrlClassLoader.defineClass(UrlClassLoader.java:191) at com.intellij.util.lang.UrlClassLoader.findClass(UrlClassLoader.java:152) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at com.android.tools.idea.rendering.RenderClassLoader.loadClassFromJar(RenderClassLoader.java:78) at org.jetbrains.android.uipreview.ProjectClassLoader.loadClassFromModuleOrDependency(ProjectClassLoader.java:108) at org.jetbrains.android.uipreview.ProjectClassLoader.load(ProjectClassLoader.java:89) at com.android.tools.idea.rendering.RenderClassLoader.findClass(RenderClassLoader.java:56) at org.jetbrains.android.uipreview.ProjectClassLoader.findClass(ProjectClassLoader.java:56) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at org.jetbrains.android.uipreview.ViewLoader.loadClass(ViewLoader.java:173) at org.jetbrains.android.uipreview.ViewLoader.loadView(ViewLoader.java:96) at com.android.tools.idea.rendering.LayoutlibCallback.loadView(LayoutlibCallback.java:172) at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:207) at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:132) at android.view.LayoutInflater.inflate(LayoutInflater.java:482) at android.view.LayoutInflater.inflate(LayoutInflater.java:385) at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:401) at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:329) at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:332) at com.android.tools.idea.rendering.RenderService$3.compute(RenderService.java:575) at com.android.tools.idea.rendering.RenderService$3.compute(RenderService.java:564) at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:932) at com.android.tools.idea.rendering.RenderService.createRenderSession(RenderService.java:564) at com.android.tools.idea.rendering.RenderService.render(RenderService.java:691) at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager.doRender(AndroidLayoutPreviewToolWindowManager.java:604) at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager.access$1900(AndroidLayoutPreviewToolWindowManager.java:80) at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager$7$1.run(AndroidLayoutPreviewToolWindowManager.java:546) at com.intellij.openapi.progress.impl.ProgressManagerImpl$2.run(ProgressManagerImpl.java:178) at com.intellij.openapi.progress.ProgressManager.executeProcessUnderProgress(ProgressManager.java:209) at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:212) at com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcess(ProgressManagerImpl.java:171) at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager$7.run(AndroidLayoutPreviewToolWindowManager.java:541) at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:320) at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:310) at com.intellij.util.ui.update.MergingUpdateQueue$2.run(MergingUpdateQueue.java:254) at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:269) at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:227) at com.intellij.util.ui.update.MergingUpdateQueue.run(MergingUpdateQueue.java:217) at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238) at com.intellij.util.Alarm$Request$1.run(Alarm.java:327) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)
Sigo esta guía http://developer.android.com/training/implementing-navigation/nav-drawer.html Pero hasta ahora no funciona en absoluto. Tal vez alguien tiene un tutorial mejor sobre cómo implementar un cajón de navegación correctamente con Android 5.0 ??
Gracias de antemano por cualquier ayuda.
Sinceramente John
- ¿Cómo puedo detener un temporizador?
- error com.android.volley.NoConnection aleatorio, java.io.InterruptedIOException, statuscode = 0
- El lienzo de Android no dibujó la ruta cuando el punto de la ruta de acceso no estaba visible
- Dimensionar una vista personalizada en función del tamaño de la pantalla
- Significado de Super Keyword
- Usar AppCompat 'layout_behavior' con '@ string / appbar_scrolling_view_behavior' lanza la excepción
- ACRA vs Android Developer error de error de la consola
- División de XML en varios archivos xml
Llegado aquí con el mismo problema, en primer lugar, preste atención a lo que Christer Nordvik comentó:
Piense que es un error en la última versión de herramientas: https://code.google.com/p/android/issues/detail?id=78090
Tenemos lo mismo en el diseñador, pero al ejecutarlo está bien. Se ha trabajado sin problemas antes de la versión API del release del SDK.
Como lo veo, usted tiene 4 opciones:
Opción 1: volver a Android pre 5.0 Utilizar y compilar con su código con SDK 20
Cambie build.gradle a lo siguiente:
apply plugin: 'com.android.application' android { compileSdkVersion 20 buildToolsVersion "20.0.0" defaultConfig { applicationId "com.example.yourapp" minSdkVersion 8 targetSdkVersion 20 versionCode 1 versionName "1.0" } buildTypes { release { runProguard false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:support-v4:20.0.0' }
Cambie las siguientes líneas a lo que corresponda a su proyecto:
applicationId "com.example.yourapp" minSdkVersion 8
Lo más probable es que también necesite cambiar "res \ v21 \ styles.xml" de:
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="AppTheme" parent="android:Theme.Material.Light"> </style> </resources>
a:
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="AppTheme" parent="android:Theme.Holo.Light"> </style> </resources>
Como los temas materiales se introducen en Lollipop / Android 5.0
Sincronice su proyecto con el nuevo archivo gradle, espere a que la sincronización termine y usted está bien para ir, ahora debería ver la vista previa de diseño
Opción 2: actualizar el código en el texto
El código compilará y funcionará perfectamente, solo actualiza tu código en texto, sin previsualizaciones. En su lugar hacer cambios y probarlos en un emulador o un dispositivo Android real.
Opción 3: combinar las 2 primeras opciones
Utilice la opción 1, haga lo que necesite hacer con los diseños (siempre y cuando no necesite nada específico de SDK 21) y cuando haya hecho, vuelva a realizar los cambios realizados en build.gradle y styles.xml para que pueda disfrutar del nuevo ojo Dulces de Lollipop, sólo prueba en un emulador o dispositivo como se sugiere en la opción 2
Opción 4: esperar que arreglen el error
solo eso.
Opción extra de largo disparo:
Si ha instalado una versión estable de Android Studio, pruebe una Beta o Canary, quien sabe, puede haber un parche implementado para resolver ese problema en uno de ellos (tengo una compilación estable, así que no sé). O pruebe en Eclipse
El error que mencionó proviene del editor de la interfaz de usuario. Esto ocurre cuando no se puede previsualizar una vista personalizada en el editor. Esto no es un problema. Si ejecuta su aplicación todo debe estar bien.
Esta es una muestra Nevigation Drawer – código de diseño del cajón, puede usarlo sin errores.
<android.support.v4.widget.DrawerLayout android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent"> <FrameLayout android:id="@+id/left_drawer" android:layout_width="330dp" android:layout_height="match_parent" android:layout_gravity="start" android:choiceMode="multipleChoice" android:divider="@android:color/transparent" android:dividerHeight="0dp" android:background="@drawable/gradient_gray"> [...] </FrameLayout> </android.support.v4.widget.DrawerLayout>
Piense que es un error en la última versión de herramientas: https://code.google.com/p/android/issues/detail?id=78090
Tenemos lo mismo en el diseñador, pero al ejecutarlo está bien. Se ha trabajado sin problemas antes de la versión API del release del SDK.
- Múltiples escaneos / intenciones entregadas a la actividad de recepción
- Gradle orden de tareas personalizadas en Android