2011-11-16 61 views
0

我爲Android創建了一個應用程序,並且它已成功在android市場上運行。現在我試圖讓它在亞馬遜App Store上生活,所以我將我的應用程序提交給亞馬遜,並開始審查它。過了一段時間,他們說你的應用程序在5次特定的時間內崩潰了5次。訪問Singleton類時獲取java.lang.VerifyError Android亞馬遜App Store

這裏是崩潰報告:

11-16 17:47:49.460: E/AndroidRuntime(9627): FATAL EXCEPTION: main 
11-16 17:47:49.460: E/AndroidRuntime(9627): java.lang.VerifyError: [package_name].manager.DestinationViewManger 
11-16 17:47:49.460: E/AndroidRuntime(9627): at [package_name].activity.SearchScreenActivity.performClickFunctionality(SearchScreenActivity.java) 
11-16 17:47:49.460: E/AndroidRuntime(9627): at [package_name].activity.SearchScreenActivity.access$0(SearchScreenActivity.java) 
11-16 17:47:49.460: E/AndroidRuntime(9627): at [package_name].activity.SearchScreenActivity$1.onClick(SearchScreenActivity.java) 
11-16 17:47:49.460: E/AndroidRuntime(9627): at android.view.View.performClick(View.java:2532) 
11-16 17:47:49.460: E/AndroidRuntime(9627): at android.view.View$PerformClick.run(View.java:9277) 
11-16 17:47:49.460: E/AndroidRuntime(9627): at android.os.Handler.handleCallback(Handler.java:587) 
11-16 17:47:49.460: E/AndroidRuntime(9627): at android.os.Handler.dispatchMessage(Handler.java:92) 
11-16 17:47:49.460: E/AndroidRuntime(9627): at android.os.Looper.loop(Looper.java:143) 
11-16 17:47:49.460: E/AndroidRuntime(9627): at android.app.ActivityThread.main(ActivityThread.java:4196) 
11-16 17:47:49.460: E/AndroidRuntime(9627): at java.lang.reflect.Method.invokeNative(Native Method) 
11-16 17:47:49.460: E/AndroidRuntime(9627): at java.lang.reflect.Method.invoke(Method.java:507) 
11-16 17:47:49.460: E/AndroidRuntime(9627): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
11-16 17:47:49.460: E/AndroidRuntime(9627): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
11-16 17:47:49.460: E/AndroidRuntime(9627): at dalvik.system.NativeStart.main(Native Method) 
11-16 17:47:49.470: W/ActivityManager(1419): Force finishing activity [package_name]/.activity.HomeScreenRepairActivity 

從這個崩潰日誌我肯定會有與DestinationViewManger類,無法解決死機問題。

這是寫在DestinationViewManager類代碼:

public class DestinationViewManger { 

    private static DestinationViewManger instance = null; 
    private Boolean flag; 

    private DestinationViewManger(){ 

    } 

    public static DestinationViewManger getInstance() { 
     if (instance == null) { 
      instance = new DestinationViewManger(); 
     } 
     return instance; 
    } 

    public Boolean getFlag() { 
     return flag; 
    } 

    public void setFlag(Boolean flag) { 
     this.flag = flag; 
    } 

} 

請幫助我,我無法來解決崩潰。任何幫助表示讚賞。

//編輯 早些時候崩潰並沒有到達我的終點,但最終我發現了amazon-appstore團隊給出的二進制崩潰。實際上,在amazon-appstore上有一個上傳.apk文件的三步過程(我希望有人知道這一點)。 這些步驟是: (1)上傳無符號二進制然後, (2)從亞馬遜下載處理後的二進制文件,然後, (3)上傳經過簽名的二進制文件。

現在,當我安裝簽名的.apk文件時,我上傳了(3)步,在我的手機上它崩潰了。如果我在(1)步上傳的二進制文件上簽名,那麼它不會崩潰。它的瘋狂,但它正在發生。

有沒有人知道爲什麼這個崩潰來了?? 由於amazon-appstore完成的二進制處理,是否發生這種崩潰?

請幫我...

回答

1

我已經通過更改包名瘋狂,但它爲我工作,已刪除崩潰。之前的軟件包名稱是[application_package_name] .manager,我認爲亞馬遜人也使用相同的軟件包名稱進行操作。所以當我只是隨機做一些事情來刪除崩潰,並無意中將包名從經理更改爲[application_package_name] .searchmanager並開始工作。我是yepeeee ....

+0

我有同樣的問題,有一個名爲util的包在Amazon AppStore上導致VerifyError,將其重命名爲utils,問題已解決! –

1
public class DestinationViewManger { 

    private static final DestinationViewManger instance = new DestinationViewManger(); 
    public Boolean flag=false; 

// Private constructor prevents instantiation from other classes 
    private DestinationViewManger(){ } 

    public static DestinationViewManger getInstance() { 
     return instance; 
    } 
} 

//嘗試這一次單例類。不需要獲取和設置方法

DestinationViewManger dstv; 

dstv=DestinationViewManger.getInstance(); 

dstv.flag=true; //set the value for your flag 

boolean whatFlagboo=dstv.flag; //get your flag wherever you want 
+0

感謝@Padma庫馬爾的快速反應。但是在聲明中調用構造函數而不是在靜態方法中有什麼區別? – Pirate

+0

@ user1049601請參閱編輯答案。 –

+0

其實我沒有注意到你已經改變了標誌的訪問修飾符。是的你是對的我們不需要公共變量的getter和setter。 – Pirate