找到我的应用崩溃的原因

时间:2013-07-20 00:25:13

标签: java android widget

一周前我开始玩Android。那也是我开始学习Java的时候了。在大约100个教程和无尽的试验和错误之夜后,我尝试构建我的第一个应用程序:

我正在尝试构建一个调用REST服务的应用程序,获取JSON答案,解析此答案并将其显示在常规应用程序中。这么长时间,这么好 - 该应用程序工作,并显示下一班巴士在我的公寓前离开的时间。 然后我对可能性感到不知所措......我构建了我的第一个appwidget,设置了一个每分钟触发一次的服务来更新该小部件。 (我知道 - 太频繁了。但是为了尝试我让它以60秒的更新间隔离开)。

问题

1)应用程序在每次启动时每隔4到5次意外崩溃。我使用手机(HTC One)通过ADB进行调试。调试器适用于我自己创建的所有文件,但向我显示“错误打开跟踪文件:没有这样的文件或目录(2)” - 错误。这意味着我无法获得有关该问题的更多信息。 2)小部件不会更新文本字段。我在那里放了一个“tba”占位符。

我怎么说

1)尝试通过在此处以及其他几个论坛上搜索解决方案来使调试器工作。所描述的错误似乎是一个常见的问题,但解决方案(重新安装Eclipse,ADT,重新下载所有的android-ressources)对我来说不起作用。 我搜索了可能导致这些崩溃的不同文件(布局,Java代码,清单等)中的原因。在我的系统上,不再有编译错误或警告。 2)尝试了不同的方法,但总是最终使用RemoteView解决方案来更新文本字段。使用了几个具有相似小部件的示例项目,对其进行了调整并尝试将这些想法应用到我的项目中。

我需要帮助的地方

1)提示如何摆脱调试问题,帮助我找到任何可能导致崩溃的新手/初学者错误,提示我可能已经遵循错误教程并且完全错误的地方 2)任何想法为什么我不能让小部件更新

资源

我将整个项目导出为ZIP文件:http://www.mikezweifel.ch/ZVV.zip

LogCat(错误部分):

07-20 10:07:26.642: E/Trace(11586): error opening trace file: No such file or directory (2)
07-20 10:07:26.682: E/AndroidRuntime(11586): FATAL EXCEPTION: main
07-20 10:07:26.682: E/AndroidRuntime(11586): java.lang.RuntimeException: Unable to instantiate receiver ch.mikezweifel.android.zvvstationsabfrage.WidgetProvider: java.lang.ClassNotFoundException: ch.mikezweifel.android.zvvstationsabfrage.WidgetProvider
07-20 10:07:26.682: E/AndroidRuntime(11586):    at android.app.ActivityThread.handleReceiver(ActivityThread.java:2518)
07-20 10:07:26.682: E/AndroidRuntime(11586):    at android.app.ActivityThread.access$1500(ActivityThread.java:151)
07-20 10:07:26.682: E/AndroidRuntime(11586):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1417)
07-20 10:07:26.682: E/AndroidRuntime(11586):    at android.os.Handler.dispatchMessage(Handler.java:99)
07-20 10:07:26.682: E/AndroidRuntime(11586):    at android.os.Looper.loop(Looper.java:155)
07-20 10:07:26.682: E/AndroidRuntime(11586):    at android.app.ActivityThread.main(ActivityThread.java:5536)
07-20 10:07:26.682: E/AndroidRuntime(11586):    at java.lang.reflect.Method.invokeNative(Native Method)
07-20 10:07:26.682: E/AndroidRuntime(11586):    at java.lang.reflect.Method.invoke(Method.java:511)
07-20 10:07:26.682: E/AndroidRuntime(11586):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1074)
07-20 10:07:26.682: E/AndroidRuntime(11586):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:841)
07-20 10:07:26.682: E/AndroidRuntime(11586):    at dalvik.system.NativeStart.main(Native Method)
07-20 10:07:26.682: E/AndroidRuntime(11586): Caused by: java.lang.ClassNotFoundException: ch.mikezweifel.android.zvvstationsabfrage.WidgetProvider
07-20 10:07:26.682: E/AndroidRuntime(11586):    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
07-20 10:07:26.682: E/AndroidRuntime(11586):    at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
07-20 10:07:26.682: E/AndroidRuntime(11586):    at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
07-20 10:07:26.682: E/AndroidRuntime(11586):    at android.app.ActivityThread.handleReceiver(ActivityThread.java:2513)
07-20 10:07:26.682: E/AndroidRuntime(11586):    ... 10 more

非常感谢任何帮助或想法!

royassas

1 个答案:

答案 0 :(得分:0)

持续强制退出的原因是我的Widget Provider类(WidgetProvider.java)嵌套在主'Startseite'活动中。将类放在单独的文件中(但仍然在同一个包中)之后,一切都很顺利。

至于“无法找到来源”的问题:Google在这里有解决方案(http://source.android.com/source/building.html) - 现在有点太多工作来构建源代码。但是在获取源代码后,可以在Eclipse中引用它。