2010-09-06 54 views
0

我有人抱怨我的应用程序在启动时获取FC(同时其他人从未遇到过单一问题)。这是我的完整活动来源。由于它发生在我没有的设备上,所以我无法修复它。从他们告诉我它不起作用:摩托罗拉Blackflip,摩托罗拉Dext,摩托罗拉CLIQ XT。猜猜摩托罗拉毕竟不喜欢我的应用程序...我的应用程序在几个设备上获得“强制关闭”

难道是我允许minSdkVersion =“3”吗?我在模拟器上测试了1.5,并且工作正常...

非常感谢您的回复。

public class workit extends Activity implements OnClickListener { 

Button yay; 
Button yay0; 
Button yay1; 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
     WindowManager.LayoutParams.FLAG_FULLSCREEN); 
     setContentView(R.layout.main); 

     yay = (Button) findViewById(R.id.gostart); 
     yay.setOnClickListener(this); 
     yay0 = (Button) findViewById(R.id.dontstart); 
     yay0.setOnClickListener(this); 
     yay1 = (Button) findViewById(R.id.exit); 
     yay1.setVisibility(ImageView.GONE); 


     ImageView inizio = (ImageView)findViewById(R.id.start);           
     inizio.setVisibility(ImageView.VISIBLE); 
     inizio.setBackgroundResource(R.drawable.start); 
    } 

public void onClick(View v) { 
    // TODO Auto-generated method stub 
    if (v == yay0) { 
     finish(); 
    } 
    if (v == yay) { 
    ImageView inizio = (ImageView)findViewById(R.id.start); 
    inizio.setVisibility(ImageView.GONE); 
    WebView work = new WebView(this); 
    setContentView(work); 
    work.loadUrl("file:///android_asset/index1.html"); 
    work.setWebViewClient(new work()); 
    work.setBackgroundColor(0); 
    work.getSettings().setBuiltInZoomControls(true); 
    work.getSettings().setDefaultZoom(ZoomDensity.FAR); 
    } 
    if (v == yay1) { 
     finish(); 
    } 
    } 
    private class work extends WebViewClient {  
     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      if (url.contains("exit.html")) { 
      // TODO: do what you have to do 
      finish(); 
      } 
      view.loadUrl(url); 
      return true; 
     } 
    } 
} 
+1

你应该看看这个崩溃报告库,我使用它,它很好地工作,发送崩溃报告到谷歌电子表格。所以你不要依赖市场错误报告或任何分钟。 OS版本。 http://code.google.com/p/acra/ – 2010-09-06 06:37:16

+0

谢谢,我会检查出来并回来报告结果。 – thpoul 2010-09-06 07:46:11

+0

这些报道是惊人的。我在那里发现了很多有趣的数据!感谢您分享这一点! – thpoul 2010-09-06 10:12:33

回答

1

最好的办法是请人送你LogCollector的输出(在我的经验,用户非常乐意为您提供信息,以调试问题。有一些很酷的人在那里)。这应该给你一个调用堆栈,以及你触发了什么样的异常(NullPointerException等)的信息。

接下来,你在建什么样的应用程序?在你的项目结构中应该有一个“Android x.x”条目。如果你正在构建应该在Android 1.5上运行的东西,那么确保你实际构建的是1.5。如果你愿意,你可以构建2.0,但如果你需要使用2.0特定的函数,你必须正确地封装它们。 (这已在几次计算器上详细解释过。)

在一个不相关的注释上 - 我建议使用更多的信息变量名称。 “yay0”对任何没有与代码密切合作一段时间的人来说都没有任何意义。

+0

谢谢你的回答,我的目标实际上是2.2。您建议用户向我发送LogCollector输出的哪种方式?我应该如何指导他们? – thpoul 2010-09-06 07:36:59

+0

让他们安装LogCollector应用程序并在应用程序崩溃后立即运行它。它会自动准备一封可以发送给你的邮件。至于构建版本 - 只是为了好玩,试着将其设置为1.5,看看它是否仍然编译。目标2.2可以,所以你可以支持在SD卡上安装,但再次 - 如果你想支持1.5设备,请确保你不要使用1.6+ API调用。 – EboMike 2010-09-06 08:44:19

+0

这就是答案! work.getSettings()setDefaultZoom(ZoomDensity.FAR)。不能在1.5和1.6中编译。现在我只需要找到一种方法让我的webview在没有ZoomDensity的情况下放大FAR。 – thpoul 2010-09-06 09:15:41