在Android中创建Application类时出错

时间:2011-06-13 21:29:45

标签: android debugging

我遵循了互联网上关于在an​​droid中使用Application类的建议。 我还在清单中的Application对象中添加了一个字段“android:name = .Session”。

该应用程序称为“会话”。

您认为错误是什么?甚至在我的应用程序启动之前就会发生这种情况。

这是错误堆栈:

**java.lang.RuntimeException: Unable to instantiate application com.appfire.Session: java.lang.InstantiationException: com.appfire.Session**
 at android.app.ActivityThread$PackageInfo.makeApplication(ActivityThread.java:523)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3996)
at android.app.ActivityThread.access$2900(ActivityThread.java:119)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1901)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4363)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
at dalvik.system.NativeStart.main(Native Method)
 **Caused by: java.lang.InstantiationException: com.appfire.Session**
at java.lang.Class.newInstanceImpl(Native Method)
at java.lang.Class.newInstance(Class.java:1479)
at android.app.Instrumentation.newApplication(Instrumentation.java:957)
at android.app.Instrumentation.newApplication(Instrumentation.java:942)
at android.app.ActivityThread$PackageInfo.makeApplication(ActivityThread.java:518)

3 个答案:

答案 0 :(得分:1)

确保您的Session类是公共的,不是静态的,并且没有默认的构造函数。

public class Session extends Application {}

答案 1 :(得分:0)

在Manifest应用程序标记中,确保包含自定义Application对象的完全限定类名:

<application
    android:name="com.mycompany.myapp.Session"
    ....  />

Android文档确实说类名必须是完全限定的:

http://developer.android.com/guide/topics/manifest/application-element.html#nm

(对于包含在清单的Activity标记中的activity类名称不是这种情况。那些可以是相对的,前面带有'。' )。

答案 2 :(得分:0)

我的解决方案是从Eclipse中删除整个项目并从SVN再次加载它。现在它可以工作