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

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


当然这或多或少是标准的?这可能是版本错误吗?我在API 15上运行;尽管我不知道哪个版本(我正在对较旧的API版本进行安装和测试),但我相信所讨论的apk已构建为较旧的版本。

对这里可能发生的事情/解决方法有任何想法吗?

谢谢!

最佳答案

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

SmsMessage smsMessage = new SmsMessage();


编辑混乱来自事实,有SmsMessage的2个版本:


first one来自android.telephony.gsm.SmsMessage,在API级别1处添加,但自API级别4起不推荐使用,并且具有公共构造函数。
second one来自android.telephony.SmsMessage,并取代了API级别4以上的上述版本。


因此,由于出现此类错误,因此您导入了最新的android.telephony.SmsMessage,应重新编写代码以适合该类的较新版本。

10-08 05:43