Виджеты ссылаются на ошибки просмотра библиотеки - PullRequest
2 голосов
/ 30 марта 2012

, поэтому я только что создал новое приложение, которое ссылается на мое старое приложение, используя его как библиотеку.Вы можете увидеть эту проблему / решение здесь:

Альтернативная запись в Play Store

Однако я только что заметил, что мое новое приложение выдает сообщения об ошибках при попыткеи установите некоторые из виджетов с выводом LogCat, например:

03-29 20:48:17.899: E/AppWidgetHostView(456): Package name com.nickavv.cleanwidgets not found
03-29 20:48:17.899: E/RemoteViews(456): Package name com.nickavv.cleanwidgets not found
03-29 20:48:17.960: W/AppWidgetHostView(456): updateAppWidget couldn't find any view, using error view
03-29 20:48:17.960: W/AppWidgetHostView(456): android.view.InflateException: Binary XML file line #18: Error inflating class com.android.launcher2.AllApps3D
03-29 20:48:17.960: W/AppWidgetHostView(456):   at android.view.LayoutInflater.createView(LayoutInflater.java:513)
03-29 20:48:17.960: W/AppWidgetHostView(456):   at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:565)
03-29 20:48:17.960: W/AppWidgetHostView(456):   at android.view.LayoutInflater.inflate(LayoutInflater.java:385)
03-29 20:48:17.960: W/AppWidgetHostView(456):   at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
03-29 20:48:17.960: W/AppWidgetHostView(456):   at android.widget.RemoteViews.apply(RemoteViews.java:930)
03-29 20:48:17.960: W/AppWidgetHostView(456):   at android.appwidget.AppWidgetHostView.updateAppWidget(AppWidgetHostView.java:219)
03-29 20:48:17.960: W/AppWidgetHostView(456):   at android.appwidget.AppWidgetHostView.updateAppWidget(AppWidgetHostView.java:155)
03-29 20:48:17.960: W/AppWidgetHostView(456):   at android.appwidget.AppWidgetHost.createView(AppWidgetHost.java:218)
03-29 20:48:17.960: W/AppWidgetHostView(456):   at com.android.launcher2.Launcher.completeAddAppWidget(Launcher.java:911)
03-29 20:48:17.960: W/AppWidgetHostView(456):   at com.android.launcher2.Launcher.onActivityResult(Launcher.java:542)
03-29 20:48:17.960: W/AppWidgetHostView(456):   at android.app.Activity.dispatchActivityResult(Activity.java:3890)
03-29 20:48:17.960: W/AppWidgetHostView(456):   at android.app.ActivityThread.deliverResults(ActivityThread.java:3511)
03-29 20:48:17.960: W/AppWidgetHostView(456):   at android.app.ActivityThread.handleSendResult(ActivityThread.java:3557)
03-29 20:48:17.960: W/AppWidgetHostView(456):   at android.app.ActivityThread.access$2800(ActivityThread.java:125)
03-29 20:48:17.960: W/AppWidgetHostView(456):   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2063)
03-29 20:48:17.960: W/AppWidgetHostView(456):   at android.os.Handler.dispatchMessage(Handler.java:99)
03-29 20:48:17.960: W/AppWidgetHostView(456):   at android.os.Looper.loop(Looper.java:123)
03-29 20:48:17.960: W/AppWidgetHostView(456):   at android.app.ActivityThread.main(ActivityThread.java:4627)
03-29 20:48:17.960: W/AppWidgetHostView(456):   at java.lang.reflect.Method.invokeNative(Native Method)
03-29 20:48:17.960: W/AppWidgetHostView(456):   at java.lang.reflect.Method.invoke(Method.java:521)
03-29 20:48:17.960: W/AppWidgetHostView(456):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
03-29 20:48:17.960: W/AppWidgetHostView(456):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
03-29 20:48:17.960: W/AppWidgetHostView(456):   at dalvik.system.NativeStart.main(Native Method)
03-29 20:48:17.960: W/AppWidgetHostView(456): Caused by: android.view.InflateException: Binary XML file line #18: Class not allowed to be inflated com.android.launcher2.AllApps3D
03-29 20:48:17.960: W/AppWidgetHostView(456):   at android.view.LayoutInflater.failNotAllowed(LayoutInflater.java:525)
03-29 20:48:17.960: W/AppWidgetHostView(456):   at android.view.LayoutInflater.createView(LayoutInflater.java:472)

Что здесь происходит?Спасибо

1 Ответ

3 голосов
/ 31 марта 2012

Ответ был в том, что я использовал RemoteViews для виджетов, и при настройке некоторых удаленных видов я жестко запрограммировал имя пакета из исходного приложения. Решением было заменить жестко закодированное имя пакета на context.getPackageName ()

...