答案 0 :(得分:13)
答案 1 :(得分:5)
这是一个老问题,我不确定这是你的麻烦,但我只是遇到了这个问题。在Eclipse中,我在错误的位置创建了文件夹(实际上是包)。例如
<强>不正确强>
这是不正确的原因是广播文件夹/包不在您期望的命名空间内。如果您右键单击我的程序/ src 并在那里创建包,就会发生这种情况。请注意,它是我的程序/ src /广播,这是错误的。
原因是 SmsReceiver 类不在您的命名空间中。在这种情况下,您的清单中可能会有类似的内容。
<receiver android:name=".Broadcast.SmsReceiver">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
触发此操作时,找不到 SmsReceiver 类,您将收到错误。
<强>正确强>
执行此操作的正确方法是将软件包放入正确的命名空间,右键单击 com.example.my.program 并在其中创建它。请注意,它是我的程序/ src / com.example.my.program.Broadcast ,它现在正确地位于同一名称空间中。
应用程序可以在上面找到相同的清单代码。
答案 2 :(得分:4)
您的broadcastReceiver类必须是示例的公共类
public class ReceptorLlamadas扩展了BroadcastReceiver
答案 3 :(得分:2)
你必须写一个完整的路径到你的broadcastReceiver,我的意思是,如果在你的清单文件中你jave package =“com.myapp”,但你的MySmsBroadcast.java不完全在myapp包下(它在myapp.smsStuff上)。例如,MySmsBroadcast)
答案 4 :(得分:1)
我也有同样的问题。就我而言,我的虚拟设备已损坏。
尝试创建一个新的并运行它。为我工作!
答案 5 :(得分:1)
您可以将接收器编写为“静态”。 在程序my.sample中,应该写接收器“static SimpleSmsReceiver
答案 6 :(得分:0)
我有同样的错误。 我修改了这样的“AndroidManifest.xml”之后,错误就解决了。
receiver android:name=".SimpleSmsReceiver"
- &GT;
receiver android:name=".SimpleSMSReceiver"
错误是这样的。
...
01-13 10:23:10.787: ERROR/AndroidRuntime(378): java.lang.RuntimeException: Unable to instantiate receiver my.sample.SimpleSmsReceiver: java.lang.ClassNotFoundException: my.sample.SimpleSmsReceiver in loader dalvik.system.PathClassLoader[/data/app/my.sample-2.apk]
01-13 10:23:10.787: ERROR/AndroidRuntime(378): at android.app.ActivityThread.handleReceiver(ActivityThread.java:2789)
01-13 10:23:10.787: ERROR/AndroidRuntime(378): at android.app.ActivityThread.access$3200(ActivityThread.java:125)
01-13 10:23:10.787: ERROR/AndroidRuntime(378): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2083)
答案 7 :(得分:0)
确保您拥有不带参数的公共构造函数。 例如,我有自己的BroadcastReceiver实现,它接收构造函数的一些属性。在我添加了一个公共默认(不带参数)构造函数之后,它可以很好地工作。
答案 8 :(得分:0)
提供完全合格的班级名称,这对我有用
像这样: *
<receiver android:name="com.zolipe.communitycensus.util.CensusReceiver">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
<action android:name="android.net.wifi.WIFI_STATE_CHANGED" />
</intent-filter>
</receiver>
*