NoSuchMethod SmsMessage <init>?</init>

时间:2014-04-14 20:21:47

标签: java android sms

我试图在模拟器上运行应用程序,但我遇到了一些奇怪的崩溃,例如:

java.lang.NoSuchMethodError: android.telephony.SmsMessage.<init>

当然这应该或多或少是标准的?这可能是版本错误吗?我在API 15上运行;我相信有问题的apk是针对旧版本构建的,虽然我不知道哪个(我在安装和测试旧API版本的过程中)。

对这里可能发生的事情的任何想法/绕过它的方法?

谢谢!

1 个答案:

答案 0 :(得分:2)

<init>代表构造函数,但是如果你看一下你会意识到的docs,它就没有构造函数(实际上它有,但它是private,看看here),所以你不能做那样的事情:

SmsMessage smsMessage = new SmsMessage();

编辑令人困惑的是,SmsMessage有两个版本:

  1. first one来自android.telephony.gsm.SmsMessage,是在API级别1添加的,但自API级别4以来已弃用,并且它具有公共构造函数。
  2. second one来自android.telephony.SmsMessage,并取代自API级别4以来的上述版本。
  3. 因此,因为您收到了这样的错误,所以导入了最新的android.telephony.SmsMessage,并且应该重新编写代码以适应更新版本的类。