2015-06-29 23 views
0

我有一個應用程序,它可以在所有4.x設備上運行完美,但現在我有一個應用程序的報告,不適用於samsung_gt(advance)android 2.3.6。下面是跟蹤:如何在Android中繞過java.lang.verifyerror

FATAL EXCEPTION: main 
java.lang.VerifyError: com.bamobile.fdtks.activities.MainActivity 
at java.lang.Class.newInstanceImpl(Native Method) 
at java.lang.Class.newInstance(Class.java:1409) 
at android.app.Instrumentation.newActivity(Instrumentation.java:1024) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1573) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1675) 
at android.app.ActivityThread.access$1500(ActivityThread.java:121) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:943) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:130) 
at android.app.ActivityThread.main(ActivityThread.java:3770) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:507) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:912) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:670) 
at dalvik.system.NativeStart.main(Native Method) 

我有最新的支持jar(V4),並已在修補的情況下,手機已經在使用它的GSON庫。問題似乎是支持庫。有任何想法嗎?非常感謝你!

+0

你能發佈MainActivity的源代碼嗎? – km86

+0

@ user3431672是一個片段活動。其中包含FragmentManagerAdaper,並且調用它調用的適配器的getItem –

+0

正如下面的答案中所述,您使用的不是androd 2.3.6的一部分。你應該將代碼進一步發佈給其他人來幫助。如果您覺得您的代碼無法粘貼,請創建一個重新創建問題的示例項目,然後您可以共享該代碼。 – km86

回答

0

java.lang.VerifyError最常見的原因是有一個類使用的方法不適用於運行該應用程序的Android版本。

根據您的堆棧跟蹤,似乎com.bamobile.fdtks.activities.MainActivity正在使用Android 2.3.6上不可用的方法,因此您會看到「驗證錯誤」。

要修復它,請將minSdkVersion和您的應用更改爲910(Android 2.3.6),並查找有關該版本Android不支持的方法的錯誤/警告。您還可以(暫時)更改minSdkVersiontargetSdkVersion9,以在使用薑餅設備中找不到的方法時強制編譯器失敗。

+0

什麼也沒有發生 –

+0

這可以通過proguard解決嗎? –