我遵循了互联网上关于在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)
答案 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再次加载它。现在它可以工作