すべて - 実際のデバイス (Android 4.0.4) とほとんどのエミュレーター (2.3.3、3.0、3.1、3.2、4.0、4.0.3 など) で正常に動作するアプリがあります。onClick メソッドを使用してアクティビティ A からアクティビティ B に変更しようとすると、2.2 エミュレータが強制終了します。私はlogcatでこれを取得しています:
07-16 01:01:10.487: E/AndroidRuntime(277): FATAL EXCEPTION: main
07-16 01:01:10.487: E/AndroidRuntime(277): java.lang.VerifyError: flatirons.applications.monopoly.Properties
07-16 01:01:10.487: E/AndroidRuntime(277): at java.lang.Class.newInstanceImpl(Native Method)
07-16 01:01:10.487: E/AndroidRuntime(277): at java.lang.Class.newInstance(Class.java:1429)
07-16 01:01:10.487: E/AndroidRuntime(277): at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
07-16 01:01:10.487: E/AndroidRuntime(277): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577)
07-16 01:01:10.487: E/AndroidRuntime(277): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
07-16 01:01:10.487: E/AndroidRuntime(277): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
07-16 01:01:10.487: E/AndroidRuntime(277): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
07-16 01:01:10.487: E/AndroidRuntime(277): at android.os.Handler.dispatchMessage(Handler.java:99)
07-16 01:01:10.487: E/AndroidRuntime(277): at android.os.Looper.loop(Looper.java:123)
07-16 01:01:10.487: E/AndroidRuntime(277): at android.app.ActivityThread.main(ActivityThread.java:4627)
07-16 01:01:10.487: E/AndroidRuntime(277): at java.lang.reflect.Method.invokeNative(Native Method)
07-16 01:01:10.487: E/AndroidRuntime(277): at java.lang.reflect.Method.invoke(Method.java:521)
07-16 01:01:10.487: E/AndroidRuntime(277): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
07-16 01:01:10.487: E/AndroidRuntime(277): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
07-16 01:01:10.487: E/AndroidRuntime(277): at dalvik.system.NativeStart.main(Native Method)
少し調査したところ、その原因はjava.lang.VerifyError
、その API でサポートされていない機能がない (つまり、Android 1.6 で NFC を使用している) か、互換性のない外部ライブラリを使用していることが原因であることがわかりました。私は外部ライブラリを使用していないので、Android 2.3.3 以降でのみ利用可能な高度な機能を使用しているに違いないと考えました。問題のある行、つまり 1429 に行き、これを見つけましたspinner1.getSelectedItem().toString();
。Android の Web サイトにアクセスしたところ、API 1 からこのメソッドが存在することがわかりました。その他のアプリの機能には、スピナー、ボタン、4 つのアクティビティ、edittext、textview、およびメニューが含まれます。java.lang.VerifyError
質問:互換性のない外部ライブラリと Android 機能以外に何が原因でしょうか? あなたがそれらを求めるように、私は特定の行からコードを投稿します。御時間ありがとうございます!