- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我在我的程序中使用了 SmsCbMessage.java 类。它取自 http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.0.1_r1/android/telephony/SmsCbMessage.java#SmsCbMessage以下是我的程序。
package com.android.internal.telephony;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsCbMessage;
import android.widget.Toast;
public class MainActivity extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//---get the CB message passed in---
Bundle bundle = intent.getExtras();
SmsCbMessage[] msgs = null;
String str = "";
if (bundle != null) {
//---retrieve the SMS message received---
Object[] pdus = (Object[]) bundle.get("pdus");
msgs = new SmsCbMessage[pdus.length];
for (int i=0; i<msgs.length; i++) {
msgs[i] = SmsCbMessage.createFromPdu((byte[])pdus[i]);
str += "CB lang " + msgs[i].getLanguageCode();
str += " :";
str += msgs[i].getMessageBody().toString();
str += "\n";
}
//---display the new CB message---
abortBroadcast();
Toast.makeText(context, str, Toast.LENGTH_SHORT).show();
}
}
}
编译没有错误。但是运行的时候报如下错误
06-21 23:32:43.530 1951-1951/com.example.samitha.cbmessagespro I/dalvikvm﹕ Could not find method android.telephony.SmsCbMessage.createFromPdu, referenced from method com.android.internal.telephony.MainActivity.onReceive
06-21 23:32:43.530 1951-1951/com.example.samitha.cbmessagespro W/dalvikvm﹕ VFY: unable to resolve static method 10876: Landroid/telephony/SmsCbMessage;.createFromPdu ([B)Landroid/telephony/SmsCbMessage;
06-21 23:32:43.530 1951-1951/com.example.samitha.cbmessagespro W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x41784c68)
06-21 23:32:45.580 1951-1951/com.example.samitha.cbmessagespro I/Process﹕ Sending signal. PID: 1951 SIG: 9
如何解决?
并不是说我在使用 SmsCbMessage.java 类时也包含了所有必需的依赖类。
最佳答案
如果您查看 SmsCbMessage@android.googlesource.com 的源代码
您会看到该类标有“@hide”属性
/*
* ....
* @hide
*/
public class SmsCbMessage implements Parcelable {...
这意味着该类是 android 的一个实现细节,它不是公共(public) android api 的一部分,可以更改或删除,恕不另行通知。
SmsCbMessage@android.googlesource.com热有方法 public static SmsCbMessage createFromPdu(byte[] pdu)
while your codefragment确实有。
您的测试设备确实有这个类,但没有静态方法。
如果你仍然想使用这个类,你可以将源代码添加到你的项目中并重命名包
[更新2015-06-25]
由于从 grepcodes 添加源到本地项目并不能解决问题,因为它有很多依赖项(尤其是 android.internal.*)
您可以创建自己的 MySmsCbMessage,它继承自设备 SmsCbMessage 类,并尝试从 grepcodes 源中添加缺少的功能。
public class MySmsCbMessage extends SmsCbMessage {
public static SmsCbMessage createFromPdu(byte[] pdu) {
try {
return new MySmsCbMessage(pdu);
} catch (IllegalArgumentException e) {
Log.w(LOG_TAG, "Failed parsing SMS-CB pdu", e);
return null;
}
}
}
这仍然是一个脆弱的解决方法,因为您不能确定其他设备是否会有 SmsCbMessage
关于java - VFY : unable to resolve static method 10876: Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30968072/
在 Delphi 7 中是否可以创建一个可以通过 Visual Form Inheritance 技术继承的抽象类?如果是这样,请提供一个例子。 任务是这样的。我想创建一个表单,作为其他两个表单的基本
我正在尝试在 Ubuntu 14.04 上安装一个需要以下命令的库: autoreconf -vfi 输出是 Usage: autoreconf [-f] [-h] [--help] [-m dir]
我今天回来工作,开始使用模拟器 (KitKat) 调试我的应用程序,我的应用程序运行正常。自上周五以来,我做了一些更改,但变化不大。 然后我转到设备 (Gingerbread) 并注意到上周运行的应用
我在我的 android 应用程序中使用 Jackson。 我在我的构建路径中添加了这两个 jar : jackson-core-asl-1.0.0.jar jackson-mapper-asl-1.
我正在使用 android studio 2.0,上次我将 jdk 7 升级到 jdk 8,我正在对文件 gradle 进行一些更改,但现在我收到此错误 E/InstantRun: Could not
我有一个简单的 android 应用程序,它在其构建路径上使用了一个 modbus 库(“jamod”)。它在我运行时立即崩溃。我在这个问题上有基本相同的问题:Getting "Caused by:
我的应用程序一切正常。然后,我做了一个小的重构,一个关键组件停止工作了。当我查看 LogCat 输出时,这是我发现的: WARN/dalvikvm(488): VFY: unable to resol
我在我的程序中使用了 SmsCbMessage.java 类。它取自 http://grepcode.com/file/repository.grepcode.com/java/ext/com.goo
我经常遇到这个错误...尤其是在访问一个类的私有(private)方法时...真的不知道这是怎么回事...我也无法从谷歌中找到太多解释.. 我只是在这里发布了一个导致异常的例子: 我有一个 SyncA
我的 Android 项目中有一个 jar 库,在运行应用程序时我开始遇到很多错误: VFY: unable to find class referenced in signature Failed
我目前正在为 Android 开发一个 Wrapper,它包装了一个 androidapk 与一些 DRM 相关的东西..顺便说一下 Android Activity .. 我创建的 Activity
我遇到了这个奇怪的错误,我不知道是什么原因造成的...完整的 LogCat: 06-24 13:15:07.878: W/dalvikvm(20470): VFY: unable to find cl
我在 Android 应用程序上遇到了 java.lang.VerifyError。 我用 Google 搜索并遇到了各种验证错误,但找不到发生这种情况的可靠原因。 这是堆栈跟踪。 我正在使用 And
我是一名优秀的程序员,十分优秀!