运行时Android小部件的java.lang.NoClassDefFoundError

运行时Android小部件的java.lang.NoClassDefFoundError,android,android-intent,android-widget,appwidgetprovider,Android,Android Intent,Android Widget,Appwidgetprovider,我在Android 2.3.3及以上版本的Android小部件运行时遇到问题 当我在屏幕上安装小部件时,会打印此错误: 11-03 10:26:31.127: E/AndroidRuntime(404): FATAL EXCEPTION: main 11-03 10:26:31.127: E/AndroidRuntime(404): java.lang.NoClassDefFoundError: com.app.myapp.StackWidgetService 11-03 10:26:31.12

我在Android 2.3.3及以上版本的Android小部件运行时遇到问题

当我在屏幕上安装小部件时,会打印此错误:

11-03 10:26:31.127: E/AndroidRuntime(404): FATAL EXCEPTION: main
11-03 10:26:31.127: E/AndroidRuntime(404): java.lang.NoClassDefFoundError: com.app.myapp.StackWidgetService
11-03 10:26:31.127: E/AndroidRuntime(404):  at com.app.myapp.StackWidgetProvider.onUpdate(StackWidgetProvider.java:229)
11-03 10:26:31.127: E/AndroidRuntime(404):  at android.appwidget.AppWidgetProvider.onReceive(AppWidgetProvider.java:61)
11-03 10:26:31.127: E/AndroidRuntime(404):  at com.app.mobideals.StackWidgetProvider.onReceive(StackWidgetProvider.java:216)
11-03 10:26:31.127: E/AndroidRuntime(404):  at android.app.ActivityThread.handleReceiver(ActivityThread.java:1794)
11-03 10:26:31.127: E/AndroidRuntime(404):  at android.app.ActivityThread.access$2400(ActivityThread.java:117)
11-03 10:26:31.127: E/AndroidRuntime(404):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:981)
11-03 10:26:31.127: E/AndroidRuntime(404):  at android.os.Handler.dispatchMessage(Handler.java:99)
11-03 10:26:31.127: E/AndroidRuntime(404):  at android.os.Looper.loop(Looper.java:123)
11-03 10:26:31.127: E/AndroidRuntime(404):  at android.app.ActivityThread.main(ActivityThread.java:3683)
11-03 10:26:31.127: E/AndroidRuntime(404):  at java.lang.reflect.Method.invokeNative(Native Method)
11-03 10:26:31.127: E/AndroidRuntime(404):  at java.lang.reflect.Method.invoke(Method.java:507)
11-03 10:26:31.127: E/AndroidRuntime(404):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
11-03 10:26:31.127: E/AndroidRuntime(404):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
11-03 10:26:31.127: E/AndroidRuntime(404):  at dalvik.system.NativeStart.main(Native Method)
问题是由于编译器没有到达StackWidgetProvider类的onUpdate方法中的此行执行到StackWidgetService类的链接:

public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {

        // update each of the widgets with the remote adapter
        for (int i = 0; i < appWidgetIds.length; ++i) {

            // Here we setup the intent which points to the StackViewService which will
            // provide the views for this collection.
            Intent intent = new Intent(context, StackWidgetService.class);
            intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetIds[i]);
public void onUpdate(上下文上下文,AppWidgetManager AppWidgetManager,int[]appWidgetIds){
//使用远程适配器更新每个小部件
对于(int i=0;i
该小部件与其他版本的Android(如3.0、4.0等)配合良好


请帮助我:)

如果您已经将eclipse插件更新到ADT 17,那么您的解决方案可能就在这里:


请看这里:

您是否在清单中声明了服务?甚至我也遇到了同样的问题。您是否解决了此问题。请帮助我解决此问题谢谢您的回复。似乎不是此错误。事实上,问题在于方法:
appWidgetManager.notifyAppWidgetViewDataChanged(i,R.id.stack\u视图);
此方法不适用于我的清单中指定的min-target sdk 10:
,因为我想介绍Android 2.3.3(目标10),而在我使用min-target=11之前。如何替换此方法(notifyAppWidgetViewDataChanged)或引入一个条件以仅在target=11时使用此代码?