我已经创建了一个可以通过Eclipse在我的Galaxy Nexus上正常工作的小部件,但是当我创建一个签名的apk时,从手机上卸载调试版本,然后安装新的apk并尝试将它放在我得到的主屏幕上以下Toast消息:“未安装应用程序”。
为什么会发生这种情况?
由于
答案 0 :(得分:35)
其实我刚刚发现了什么问题。我正在基于相同的代码制作几个小部件,并且在构建之前我重构并更改了包名称。我错过了更新appwidget-provider xml中的“android:configure”字段,因此导致配置活动“找不到”。
答案 1 :(得分:26)
我刚遇到这个问题,解决方案是我在这里没有提到的:我已经改变了用于配置我的小部件的活动,但是忘记为我的AndroidManifest.xml添加一个intent过滤器。 / p>
<activity android:name="com.mypackage.ConfigureWidget"
android:label="@string/configureWidget">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_CONFIGURE" />
</intent-filter>
</activity>
答案 2 :(得分:8)
同样的问题也在我的应用程序中。我做的是我只是从appwidget-provider xml中删除“android:configure”字段,它开始继续正常工作。
答案 3 :(得分:1)
检查你的清单中是否有'maxSdkVersion'参数。这可能会给你一个特定设备的错误...更好地给targetSdkVersion ....
答案 4 :(得分:0)
如果我的错误可以帮助其他人
我错误地添加了android:exported =“false”并且总是使我的配置活动不弹出
导出必须为true才能使窗口小部件配置正常工作
总之,请确保以下
1)活动android:name真的指向正确的包名,尤其是你使用“.widget.xxxxxActivity”(小心完全停止)
2)android:exported =“true”
3)您的配置活动低于
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_CONFIGURE"/>
</intent-filter>
4)在你的appwidget-provider中,确保android:configure =“你在步骤1中的正确配置活动
答案 5 :(得分:0)
我遇到了与此问题相同的问题,感谢https://stackoverflow.com/a/11187572/3763837我可以解决问题。默认情况下它是21,我改为19.现在应用程序正常运行。
<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="19" />