<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res/com.org.BatteryManager"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<com.org.BatteryManager.BatteryView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:textColor="#ffffffff"
/>
</LinearLayout>
02-17 18:49:49.392: WARN/AppWidgetHostView(124): updateAppWidget couldn't find any view, using error view
02-17 18:49:49.392: WARN/AppWidgetHostView(124): android.view.InflateException: Binary XML file line #9: Error inflating class com.org.BatteryManager.BatteryView
02-17 18:49:49.392: WARN/AppWidgetHostView(124): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:576)
02-17 18:49:49.392: WARN/AppWidgetHostView(124): at android.view.LayoutInflater.rInflate(LayoutInflater.java:618)
02-17 18:49:49.392: WARN/AppWidgetHostView(124): at android.view.LayoutInflater.inflate(LayoutInflater.java:407)
02-17 18:49:49.392: WARN/AppWidgetHostView(124): at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
02-17 18:49:49.392: WARN/AppWidgetHostView(124): at android.widget.RemoteViews.apply(RemoteViews.java:930)
02-17 18:49:49.392: WARN/AppWidgetHostView(124): at android.appwidget.AppWidgetHostView.updateAppWidget(AppWidgetHostView.java:219)
02-17 18:49:49.392: WARN/AppWidgetHostView(124): at android.appwidget.AppWidgetHost.updateAppWidgetView(AppWidgetHost.java:250)
02-17 18:49:49.392: WARN/AppWidgetHostView(124): at android.appwidget.AppWidgetHost$UpdateHandler.handleMessage(AppWidgetHost.java:73)
02-17 18:49:49.392: WARN/AppWidgetHostView(124): at android.os.Handler.dispatchMessage(Handler.java:99)
02-17 18:49:49.392: WARN/AppWidgetHostView(124): at android.os.Looper.loop(Looper.java:123)
02-17 18:49:49.392: WARN/AppWidgetHostView(124): at android.app.ActivityThread.main(ActivityThread.java:4627)
02-17 18:49:49.392: WARN/AppWidgetHostView(124): at java.lang.reflect.Method.invokeNative(Native Method)
02-17 18:49:49.392: WARN/AppWidgetHostView(124): at java.lang.reflect.Method.invoke(Method.java:521)
02-17 18:49:49.392: WARN/AppWidgetHostView(124): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
02-17 18:49:49.392: WARN/AppWidgetHostView(124): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
02-17 18:49:49.392: WARN/AppWidgetHostView(124): at dalvik.system.NativeStart.main(Native Method)
02-17 18:49:49.392: WARN/AppWidgetHostView(124): Caused by: java.lang.ClassNotFoundException: com.org.BatteryManager.BatteryView in loader dalvik.system.PathClassLoader[.]
02-17 18:49:49.392: WARN/AppWidgetHostView(124): at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243)
02-17 18:49:49.392: WARN/AppWidgetHostView(124): at java.lang.ClassLoader.loadClass(ClassLoader.java:573)
02-17 18:49:49.392: WARN/AppWidgetHostView(124): at java.lang.ClassLoader.loadClass(ClassLoader.java:532)
02-17 18:49:49.392: WARN/AppWidgetHostView(124): at android.view.LayoutInflater.createView(LayoutInflater.java:466)
02-17 18:49:49.392: WARN/AppWidgetHostView(124): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:565)
02-17 18:49:49.392: WARN/AppWidgetHostView(124): ... 15 more
Respuesta
¿Qué es com.org.BatteryManager.BatteryView?
Si desea utilizar una vista personalizada, entonces es posible. La forma de hacerlo es crear una clase de vista personalizada en Java que extienda alguna clase de componente de vista base.
Por ejemplo, uso componentes de Galería personalizados en muchas de mis aplicaciones. La clase de galería solo moverá un cuadro hacia la izquierda o hacia la derecha en un deslizamiento que es diferente del comportamiento predeterminado.
La forma en que hice mi galería costumbre es extiende la clase básica Galería -
package com.testing.whatever;
public class CustomGallery extends Gallery {
//CODE OVERRIDES HERE
}
Luego, en mi código XML, el código parecía similar a lo que ya tiene -
<com.testing.whatever.CustomGallery android:layout_width="fill_parent" android:layout_height="fill_parent" />
Sospecho que está obteniendo su error porque no ha codificado com.org.BatteryManager.BatteryView o está en el lugar incorrecto en sus archivos java.
Esto no funciona para un widget de aplicación. Los widgets de la aplicación no pueden usar clases personalizadas. – CommonsWare
Tuve el mismo problema confuso. Para solucionarlo, su vista personalizada debería proporcionar un constructor con dos argumentos: Context y AttributeSet como se indica en here.
- 1. Throw Custom Exception
- 2. android custom url scheme ..?
- 3. Custom Design Android ViewGroup subclases
- 4. Android: Custom barra de título
- 5. Android - widget de acordeón
- 6. Android Widget Not Updating
- 7. Android Widget update
- 8. Android Widget Lifecycle
- 9. "Break On Exception" en Eclipse/Android
- 10. Uso de Global Exception Handling en android
- 11. Android Socket Exception "socket está cerrado"
- 12. Android - Custom AutoCompleteTextView CursorAdaptor - Comportamiento de sugerencia
- 13. Android Custom font Spannable Typeface Span
- 14. Android/iOS - Custom URI/Protocolo de Manejo
- 15. Android, Custom ListAdapter get TextView-Text
- 16. Android personalizada Drawable vs custom View
- 17. Android - Custom AlertDialog Color de fondo
- 18. OnUpdate nunca llamó - Widget Android
- 19. Problemas con widget Android-pulltorefresh
- 20. Actualizar Android Widget From Activity
- 21. Android: widget de búsqueda ActionBarSherlock
- 22. Widget de tamaño variable Android
- 23. android widget on click event
- 24. Atributos XML del diseño de fusión a RelativeLayout vía inflate
- 25. catch null exception
- 26. Creando Custom ImageView
- 27. Ejecutar Android Widget de la actividad
- 28. widget de Android con múltiples botones
- 29. Diseño de widget Android: fondo negro predeterminado
- 30. Android - Widget con Scroll Listview Manual Refresh
Intenta eliminar la etiqueta @RemoteViews si tienes una, que funcionó para mí. Me estaba destrozando el cerebro para resolver esto. – DeliveryNinja