2011-11-16 33 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