Java 使用getApplicationContext()时出现NullPointerException

Java 使用getApplicationContext()时出现NullPointerException,java,android,Java,Android,我正在编写我的第一个Android应用程序,但仍然无法处理此错误: 01-29 23:28:06.503 2135-2135/com.example.centrum.doradcazakupuv1 E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.centrum.doradcazakupuv1, PID: 2135 java.lang.RuntimeException: Unable to instantiate activ

我正在编写我的第一个Android应用程序,但仍然无法处理此错误:

01-29 23:28:06.503 2135-2135/com.example.centrum.doradcazakupuv1 E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.centrum.doradcazakupuv1, PID: 2135
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.centrum.doradcazakupuv1/com.example.centrum.doradcazakupuv1.StronaGlowna}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Context android.content.Context.getApplicationContext()' on a null object reference
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2327)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
    at android.app.ActivityThread.-wrap11(ActivityThread.java)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:148)
    at android.app.ActivityThread.main(ActivityThread.java:5417)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
 Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Context android.content.Context.getApplicationContext()' on a null object reference
    at android.content.ContextWrapper.getApplicationContext(ContextWrapper.java:107)
    at com.example.centrum.doradcazakupuv1.StronaGlowna.<init>(StronaGlowna.java:63)
    at java.lang.Class.newInstance(Native Method)
    at android.app.Instrumentation.newActivity(Instrumentation.java:1067)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2317)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
    at android.app.ActivityThread.-wrap11(ActivityThread.java) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:148) 
    at android.app.ActivityThread.main(ActivityThread.java:5417) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
01-29 23:28:06.503 2135-2135/com.example.centrum.doradcazakupuv1 E/AndroidRuntime:致命异常:main
进程:com.example.centrum.doradcazakupuv1,PID:2135
java.lang.RuntimeException:无法实例化活动组件信息{com.example.centrum.doradcazakupuv1/com.example.centrum.doradcazakupuv1.StronaGlowna}:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“android.content.Context android.Context.getApplicationContext()”
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2327)上
位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
位于android.app.ActivityThread.-wrap11(ActivityThread.java)
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)上
位于android.os.Handler.dispatchMessage(Handler.java:102)
位于android.os.Looper.loop(Looper.java:148)
位于android.app.ActivityThread.main(ActivityThread.java:5417)
位于java.lang.reflect.Method.invoke(本机方法)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run上(ZygoteInit.java:726)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
原因:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“android.content.Context android.content.Context.getApplicationContext()”
位于android.content.ContextWrapper.getApplicationContext(ContextWrapper.java:107)
位于com.example.centrum.doradcazakupuv1.StronaGlowna.(StronaGlowna.java:63)
位于java.lang.Class.newInstance(本机方法)
位于android.app.Instrumentation.newActivity(Instrumentation.java:1067)
位于android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2317)
位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
位于android.app.ActivityThread.-wrap11(ActivityThread.java)
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)上
位于android.os.Handler.dispatchMessage(Handler.java:102)
位于android.os.Looper.loop(Looper.java:148)
位于android.app.ActivityThread.main(ActivityThread.java:5417)
位于java.lang.reflect.Method.invoke(本机方法)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run上(ZygoteInit.java:726)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
我的代码是:

package com.example.centrum.doradcazakupuv1;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.Toast;

import com.google.zxing.integration.android.IntentIntegrator;
import com.google.zxing.integration.android.IntentResult;


public class StronaGlowna extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_strona_glowna);
    }

    boolean cSoja = false;
    boolean cOA = false;
    boolean cWege = false;
    boolean cFullWege = false;
    IntentResult wr;

    String wynik;


    public void onCheckBoxClicked(View view) {
        boolean checked = ((CheckBox) view).isChecked();
        switch (view.getId()) {
            case R.id.soja:
                if (checked) {
                    cSoja = true;
                } else {
                    cSoja = false;
                }
                break;
            case R.id.oa:
                if (checked) {
                    cOA = true;
                } else {
                    cOA = false;
                }
                break;
            case R.id.wege:
                if (checked) {
                    cWege = true;
                } else {
                    cWege = false;
                }
                break;
            case R.id.fullWege:
                if (checked) {
                    cFullWege = true;
                } else {
                    cFullWege = false;
                }
                break;
        }
    }

    public int bts(boolean p) {
        if (p) return 1;
        else return 0;
    }


    public class ScanActivity extends Activity {
        public void onActivityResult(int requestCode, int resultCode, Intent intent) {
            IntentResult scanningResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
            wr = scanningResult;
        }

        protected void onCreate(Bundle icicle) {
            super.onCreate(icicle);
            setContentView(R.layout.activity_strona_glowna);
            final Button button = (Button) findViewById(R.id.button);
            button.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
                    // moja akcja;
                    IntentIntegrator Skaner = new IntentIntegrator(new ScanActivity());
                    Skaner.initiateScan();
                    wynik = wr.getContents();
                    int[] tablica = new int[4];
                    for (int i = 0; i < 4; i++) {
                        tablica[i] = wynik.charAt(i) - 48;
                    }
                    boolean fTest = true;
                    if (tablica[0] != bts(cSoja)) fTest = false;
                    else if (tablica[1] != bts(cOA)) fTest = false;
                    else if (tablica[2] != bts(cWege)) fTest = false;
                    else if (tablica[3] != bts(cFullWege)) fTest = false;
                    final Toast fail = Toast.makeText(getApplicationContext(), "Ten produkt nie odpowiada twoim preferencjom", Toast.LENGTH_SHORT);
                    final Toast good = Toast.makeText(getApplicationContext(), "Możesz to zjeść", Toast.LENGTH_SHORT);
                    if (fTest) good.show();
                    else fail.show();

                    // koniec akcji
                }
            });
        }
    }
}
package com.example.centrum.doradcazakupuv1;
导入android.app.Activity;
导入android.content.Intent;
导入android.os.Bundle;
导入android.support.v7.app.AppActivity;
导入android.view.view;
导入android.widget.Button;
导入android.widget.CheckBox;
导入android.widget.Toast;
导入com.google.zxing.integration.android.IntentIntegrator;
导入com.google.zxing.integration.android.IntentResult;
公共类StronaGlowna扩展了AppCompatActivity{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u strona\u glowna);
}
布尔cSoja=false;
布尔cOA=false;
布尔值cWege=false;
布尔值cFullWege=false;
IntentResult wr;
字符串wynik;
单击复选框后的公共无效(视图){
布尔选中=((复选框)视图).isChecked();
开关(view.getId()){
案例R.id.soja:
如果(选中){
cSoja=正确;
}否则{
cSoja=假;
}
打破
案例R.id.oa:
如果(选中){
cOA=真;
}否则{
cOA=假;
}
打破
案例R.id.wege:
如果(选中){
cWege=true;
}否则{
cWege=假;
}
打破
案例R.id.fullWege:
如果(选中){
cFullWege=真;
}否则{
cFullWege=假;
}
打破
}
}
公共int bts(布尔值p){
如果(p)返回1;
否则返回0;
}
公共类活动扩展了活动{
ActivityResult上的公共void(int请求代码、int结果代码、意图){
IntentResult scanningResult=IntentIntegrator.parseActivityResult(请求代码、结果代码、意图);
wr=扫描结果;
}
创建时受保护的空隙(捆绑冰柱){
超级冰柱;
setContentView(R.layout.activity\u strona\u glowna);
最终按钮按钮=(按钮)findViewById(R.id.Button);
setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图v){
//moja akcja;
IntentIntegrator Skaner=新的IntentIntegrator(new ScanActivity());
Skaner.initiateScan();
wynik=wr.getContents();
int[]tablica=新int[4];
对于(int i=0;i<4;i++){
tablica[i]=wynik.charAt(i)-48;
}
布尔值fTest=true;
如果(tablica[0]!=bts(cSoja))fTest=false;
否则,如果(tablica[1]!=bts(cOA))fTest=false;
否则如果(tablica[2]!=bts(cWege))fTest=false;
否则,如果(tablica[3]!=bts(cFullWege))fTest=false;
final Toast fail=Toast.makeText(getApplicationContext(),“Ten produkt nie odpowiada twoim preferencjom”,Toast.LENGTH\u SHORT);
final Toast good=Toast.makeText(getApplicationContext(),“Możesz to zjeść”,Toast.LENGTHśu SHORT);
如果(fTest)良好,则显示();
final Toast fail = Toast.makeText(getApplicationContext(), "Ten produkt nie odpowiada twoim preferencjom", Toast.LENGTH_SHORT);
final Toast good = Toast.makeText(getApplicationContext(), "Możesz to zjeść", Toast.LENGTH_SHORT);
final Toast fail = Toast.makeText(ScanActivity.this, "Ten produkt nie odpowiada twoim preferencjom", Toast.LENGTH_SHORT);
final Toast good = Toast.makeText(ScanActivity.this, "Możesz to zjeść", Toast.LENGTH_SHORT);