在onCreate之前强制关闭,活动类未找到异常

时间:2010-04-13 15:45:32

标签: android

我刚开始在Android 1.5上测试我的应用程序,它根本不想运行。我在主要活动的onCreate上有一个断点,但是在达到它之前我得到了一个ClassNotFound异常。未找到的课程似乎是我主要活动的课程。例外情况发生在:     ActivityThread.performLaunchActivity

它在1.6及更高版本上运行正常,所以我假设我使用的是1.5不支持的东西。但我怎么能知道它是什么?任何关于如何调试这个的提示将不胜感激。

感谢。

2 个答案:

答案 0 :(得分:1)

如果您已导入jar,请验证它们是否位于/ libs目录中而不是/ lib目录中,并且它们是作为jar导入而不是作为外部jar导入

答案 1 :(得分:0)

我今天遇到了同样的问题。很难确定哪个类不受支持。堆栈跟踪并没有真正揭示它,它只是给出了一些有误导性的消息,即你的活动类无法找到。我所知道的一些API不是在Android 1.5中使用的: - 蓝牙(2.0及以上) - 文本到语音(1.6及以上)

我遇到了这个问题,因为我在我的应用中添加了对文字到语音的支持,并且没有考虑首先检查文档以确保Android 1.5支持文本到语音。我很沮丧地知道它只是在Android 1.6中添加的。要解决这个问题,我必须做几件事:

  • 从我的活动中删除“import android.speech.tts。*”
  • 创建镜像文本到语音API的包装类,并从那里调用真正的文本到语音类。
  • 将if语句放在我的包装器类的调用周围,以确保只有在Android SDK级别为1.6或更高级别时才调用它。您可以通过检查android.os.Build.VERSION.SDK
  • 来检查Android SDK级别
  • 在您的Android电子市场列表中,表明只有安装了Android 1.6或更高版本才能使用文字转语音功能。

这种方法的好处在于,在将来,当我决定放弃对Android 1.5的支持时,我可以轻松地将我对包装类的调用更改为直接调用文本到语音API并删除包装类。

我为蓝牙代码做了类似的事情。