2012-02-25 11 views
2

私はgalaxy 3 froyoデバイス(エミュレータとgalaxy s2でうまく動作します)で実行する場合にのみ、私のandroid apkで非常に奇妙なエラーが発生しました。奇妙な検証者を解決するためのアイデアは、onTouchEventのクラスを拒否しました

エラーはOntoucheventクラスから来ており、コードの一部の行をコメントアウトすると、エラーは消えます。しかし、これらの行はこのエラーとは関係がありません(コードの一部も実行されていません)。例えば

、私はontoucheventのKeyDown内部のスイッチケースに

if(sound)try{SoundManager.playSound(1,1);}catch(Exception e){e.printStackTrace();} 

の1行を追加する場合、それはエラーが発生することはありませんが、私は彼ら(ないで1回)の6を追加した場合、それがクラッシュします。

それは長いですので、私は、全体のソースコードを貼り付けることはできませんが、エラーは以下の通りです:

02-25 19:11:59.893: WARN/dalvikvm(5754): VFY: invalid switch start: at 88, switch offset -32758, count 33104 
02-25 19:11:59.928: WARN/dalvikvm(5754): VFY: rejected Lspaceshooter/apk/OpenGLRenderer;.onTouchEvent (Landroid/view/MotionEvent;)Z 
02-25 19:11:59.928: WARN/dalvikvm(5754): Verifier rejected class Lspaceshooter/apk/OpenGLRenderer; 
02-25 19:11:59.928: DEBUG/AndroidRuntime(5754): Shutting down VM 
02-25 19:11:59.928: WARN/dalvikvm(5754): threadid=1: thread exiting with uncaught exception (group=0x4001d7d0) 
02-25 19:11:59.943: ERROR/AndroidRuntime(5754): FATAL EXCEPTION: main 
02-25 19:11:59.943: ERROR/AndroidRuntime(5754): java.lang.VerifyError: spaceshooter.apk.OpenGLRenderer 
02-25 19:11:59.943: ERROR/AndroidRuntime(5754):  at spaceshooter.apk.Main.onCreate(Main.java:84) 
02-25 19:11:59.943: ERROR/AndroidRuntime(5754):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
02-25 19:11:59.943: ERROR/AndroidRuntime(5754):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 
02-25 19:11:59.943: ERROR/AndroidRuntime(5754):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
02-25 19:11:59.943: ERROR/AndroidRuntime(5754):  at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
02-25 19:11:59.943: ERROR/AndroidRuntime(5754):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
02-25 19:11:59.943: ERROR/AndroidRuntime(5754):  at android.os.Handler.dispatchMessage(Handler.java:99) 
02-25 19:11:59.943: ERROR/AndroidRuntime(5754):  at android.os.Looper.loop(Looper.java:123) 
02-25 19:11:59.943: ERROR/AndroidRuntime(5754):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
02-25 19:11:59.943: ERROR/AndroidRuntime(5754):  at java.lang.reflect.Method.invokeNative(Native Method) 
02-25 19:11:59.943: ERROR/AndroidRuntime(5754):  at java.lang.reflect.Method.invoke(Method.java:521) 
02-25 19:11:59.943: ERROR/AndroidRuntime(5754):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858) 
02-25 19:11:59.943: ERROR/AndroidRuntime(5754):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
02-25 19:11:59.943: ERROR/AndroidRuntime(5754):  at dalvik.system.NativeStart.main(Native Method) 

任意のアイデア?

+0

関連するコードを投稿する必要があります –

+0

私のontoucheventクラスが「長すぎる」可能性はありますか?私は、そのクラスからコードの半分を削除して単に関数に貼り付け、その関数をontoucheventから呼び出すだけでエラーがなくなるということです。それ以外の場合、すべての行は同じです。 – Tamas

+0

それは意味がありますか? :) – Tamas

答えて

2

コード内のいくつかのクラスには、検証者用の行が多すぎるようです。問題はアンドロイド2.2システムまたはそれ以下でのみ発生します。

解決策は、クラスをより小さなクラスに分けて、それらを元のクラスの内側に呼び出すようです。ちょっとばかだと思うが、うまくいく。

関連する問題