2012-08-09 81 views
0

我最近發佈了我的第一個應用程序(一個音板),現在我收到來自Froyo用戶的投訴,雖然該應用程序似乎兼容,但無法正常工作。我的應用程序在Froyo上的問題(2.2)

我的應用程序以啓動畫面開始,然後有一個主菜單,然後啓動主要活動,其中有7個選項卡。每個標籤包含20個聲音,包括一個textview和4個圖像按鈕。 與廣告橫幅一起,這可以在一項活動中獲得大約500個視圖。 Eclipse警告我說,超過80個視圖可能會影響性能,但即使是像Samsung Galaxy Y這樣的低級手機也能夠運行該應用程序。

我爲我的應用程序設置的min SDK是8級,Froyo,現在我得到負面反饋並進行測試後,我發現,在Froyo上,活動並未開始。

Android 2.2的每項活動是否有固定的80個視圖限制?我無法在任何地方找到任何信息。

這是我在開發者控制檯不斷地看到錯誤:

java.lang.VerifyError: com.cheftony.psychsoundfree.Nicknames 
at java.lang.Class.newInstanceImpl(Native Method) 
at java.lang.Class.newInstance(Class.java:1429) 
at android.app.Instrumentation.newActivity(Instrumentation.java:1021) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:123) 
at android.app.ActivityThread.main(ActivityThread.java:4627) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:521) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:902) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:660) 
at dalvik.system.NativeStart.main(Native Method) 

我應該怎麼辦? 我正在考慮修改主菜單以啓動基於設備的Android版本的不同活動,例如,在任何使用薑餅或更高版本的手機上開始我的常規舊活動,並創建一個新的界面,其中界面分爲幾個活動所以每個活動都沒有太多的視圖,這是很多工作,基本上會分割應用程序,並將更新它的工作翻倍。

或者我應該排除Froyo設備?它今天仍然支持Froyo有多重要?

回答

0

當我試圖調用只比我的minSdkVersion更高的SDK版本的方法時,我得到了這種錯誤(VerifyError)。儘管我確保只在適當的SDK版本中調用它。解決方案是使用反射來訪問更高SDK的方法。

我不確定這是你的情況,你怎麼看?你在調用這種方法嗎?

+0

我的音板包含幾種風格或功能完全相同的活動,除了這些方面:這個特定的活動使用了很多視圖,它使用可滾動的標籤,但我已經刪除了標籤,仍然有錯誤,所以我相信這確實是造成這種情況的觀點數量。 – 2012-08-09 18:35:38

+0

您是否嘗試減少此特定活動中的視圖數量? – 2012-08-09 19:05:56

+0

這正是我所做的。除了用於更高操作系統版本的選項卡和片段之外,我將活動拆分爲幾個較小的活動,不超過每活動大約80-85 Views,製作另一個菜單以預先選擇用戶想要的和現在的哪一部分它工作正常。 – 2012-10-27 00:16:58