在Android中创建Application类时出错

问题描述

| 我遵循互联网上有关在android中使用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)
    

解决方法

        确保您的Session类是公共的,不是静态的,并且没有默认的构造函数。
public class Session extends Application {}
    ,        在清单应用程序标记中,确保包含自定义应用程序对象的标准类名:
<application
    android:name=\"com.mycompany.myapp.Session\"
    ....  />
Android文档确实说类名必须完全合格: http://developer.android.com/guide/topics/manifest/application-element.html#nm (清单文件的
activity
标记中包含的
Activity
类名不是这种情况。它们可以是相对的,并带有\'。\'。)     ,        我的解决方案是从Eclipse删除整个项目,然后从SVN再次加载它。现在可以了