java - 扩展应用程序示例导致程序崩溃

标签 java api android

我按照这个例子:

http://www.intridea.com/blog/2011/5/24/how-to-use-application-object-of-android

它似乎在 MyApplicationonCreate() 期间崩溃了 singleton = this.

public class MyApplication extends Application {

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
}
private static MyApplication singleton;

@Override
public void onCreate() {
    super.onCreate();
    Log.v("MyApplication", "Hi from my application");
    singleton = this;
    Log.v("MyApplication", "End onCreat of myApplicatoin");
    
}
@Override
public void onLowMemory() {
    super.onLowMemory();
}

@Override
public void onTerminate() {
    super.onTerminate();
}

public MyApplication getInstance(){
    return singleton;
}
public boolean isNetworkAvailable() {
    return true;
}


}

MainActivity 中的代码:

MyApplication mApplication = (MyApplication) getApplicationContext();

这是 logcat 消息:

11-23 16:43:01.398: V/MyApplication(30957): Hi from my application
11-23 16:43:01.398: E/AndroidRuntime(30957): FATAL EXCEPTION: main
11-23 16:43:01.398: E/AndroidRuntime(30957): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.jimmyc.fall12.OpenClass/com.jimmyc.fall12.OpenClass.MainInterface}: java.lang.NullPointerException
11-23 16:43:01.398: E/AndroidRuntime(30957):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2106)
11-23 16:43:01.398: E/AndroidRuntime(30957):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
11-23 16:43:01.398: E/AndroidRuntime(30957):    at android.app.ActivityThread.access$600(ActivityThread.java:141)
11-23 16:43:01.398: E/AndroidRuntime(30957):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
11-23 16:43:01.398: E/AndroidRuntime(30957):    at android.os.Handler.dispatchMessage(Handler.java:99)
11-23 16:43:01.398: E/AndroidRuntime(30957):    at android.os.Looper.loop(Looper.java:137)
11-23 16:43:01.398: E/AndroidRuntime(30957):    at android.app.ActivityThread.main(ActivityThread.java:5039)
11-23 16:43:01.398: E/AndroidRuntime(30957):    at java.lang.reflect.Method.invokeNative(Native Method)
11-23 16:43:01.398: E/AndroidRuntime(30957):    at java.lang.reflect.Method.invoke(Method.java:511)
11-23 16:43:01.398: E/AndroidRuntime(30957):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
11-23 16:43:01.398: E/AndroidRuntime(30957):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
11-23 16:43:01.398: E/AndroidRuntime(30957):    at dalvik.system.NativeStart.main(Native Method)
11-23 16:43:01.398: E/AndroidRuntime(30957): Caused by: java.lang.NullPointerException
11-23 16:43:01.398: E/AndroidRuntime(30957):    at android.content.ContextWrapper.getApplicationContext(ContextWrapper.java:109)
11-23 16:43:01.398: E/AndroidRuntime(30957):    at com.jimmyc.fall12.OpenClass.MainInterface.<init>(MainInterface.java:75)
11-23 16:43:01.398: E/AndroidRuntime(30957):    at java.lang.Class.newInstanceImpl(Native Method)
11-23 16:43:01.398: E/AndroidRuntime(30957):    at java.lang.Class.newInstance(Class.java:1319)
11-23 16:43:01.398: E/AndroidRuntime(30957):    at android.app.Instrumentation.newActivity(Instrumentation.java:1054)
11-23 16:43:01.398: E/AndroidRuntime(30957):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2097)
> 11-23 16:43:01.398: E/AndroidRuntime(30957):  ... 11 more

有什么想法吗?

主界面的第 74、75、76 行

74: ////////////////Access to global function

75: MyApplication mApplication = (MyApplication) getApplicationContext();

76: //

最佳答案

需要在onCreate()中初始化mApplication:

MyApplication mApplication;

public void onCreate(Bundle savedInstanceState) {
    ...
    mApplication = (MyApplication) getApplicationContext();

关于java - 扩展应用程序示例导致程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13537323/

相关文章:

java - HTTPUrlConnection 为 Linux 返回 400 但适用于 Windows

java - 属性文件未通过 java 加载

javascript - 如何使用 spotify web api 获取用户的播放列表列表?

java - 如何在android中合并位图?

android - 适用于网站的 iOS 和 Android App Shell - 哪种技术最有效? WebView ?渐进式应用程序?

JavaFx - TableColumn 中的值不会改变

java - `Eclipse/Project/Clean...` 和 `Eclipse/Project/Refresh (F5)` 之间有什么区别?

php - PHP自动生成rest api

api - 使用 Grafana API 进行自动身份验证

android - 尝试建立 Http 连接时应用程序强制关闭