Build.SERIAL
以下は、静的フィールドにアクセスするために使用するコードですが、Android 1.6 で実行するとクラッシュします!
// introduced in Android 2.3(API Level 9)
if (Integer.parseInt(android.os.Build.VERSION.SDK) >= android.os.Build.VERSION_CODES.GINGERBREAD) {
deviceID = android.os.Build.SERIAL; //cannot execute here if runs on Android 1.6!!!
}
それがクラッシュログです:
DexOpt: couldn't find static field
W/dalvikvm( 1098): VFY: unable to resolve static field 37 (SERIAL) in Landroid/os/Build;
W/dalvikvm( 1098): VFY: rejecting opcode 0x62 at 0x0001
W/dalvikvm( 1098): VFY: rejected Lcom/opera/mini/android/DisplayNotificationService;.getDeviceSerialID ()Ljava/lang/String;
W/dalvikvm( 1098): Verifier rejected class Lcom/opera/mini/android/DisplayNotificationService;
W/dalvikvm( 1098): Class init failed in newInstance call (Lcom/opera/mini/android/DisplayNotificationService;)
D/AndroidRuntime( 1098): Shutting down VM
W/dalvikvm( 1098): threadid=3: thread exiting with uncaught exception (group=0x4001da10)
E/AndroidRuntime( 1098): Uncaught handler: thread main exiting due to uncaught exception`
では、この問題を解決するにはどうすればよいでしょうか。