我试图在模拟器上运行应用程序,但我遇到了一些奇怪的崩溃,例如:
java.lang.NoSuchMethodError: android.telephony.SmsMessage.<init>
当然这应该或多或少是标准的?这可能是版本错误吗?我在API 15上运行;我相信有问题的apk是针对旧版本构建的,虽然我不知道哪个(我在安装和测试旧API版本的过程中)。
对这里可能发生的事情的任何想法/绕过它的方法?
谢谢!
答案 0 :(得分:2)
<init>
代表构造函数,但是如果你看一下你会意识到的docs,它就没有构造函数(实际上它有,但它是private
,看看here),所以你不能做那样的事情:
SmsMessage smsMessage = new SmsMessage();
编辑令人困惑的是,SmsMessage
有两个版本:
android.telephony.gsm.SmsMessage
,是在API级别1添加的,但自API级别4以来已弃用,并且它具有公共构造函数。android.telephony.SmsMessage
,并取代自API级别4以来的上述版本。因此,因为您收到了这样的错误,所以导入了最新的android.telephony.SmsMessage
,并且应该重新编写代码以适应更新版本的类。