簡體   English   中英

所以,我正在嘗試在 android 中做一些簡單的事情,它顯示了我的錯誤,我無法弄清楚

[英]So, I am trying to do simple stuff in android and it shows me error and I'm not able to figure it out

錯誤

      Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.pm.ApplicationInfo android.content.Context.getApplicationInfo()' on a null object reference
    at android.content.ContextWrapper.getApplicationInfo(ContextWrapper.java:183)
    at android.view.ContextThemeWrapper.getTheme(ContextThemeWrapper.java:174)
    at android.content.Context.obtainStyledAttributes(Context.java:744)
    at androidx.appcompat.app.AppCompatDelegateImpl.createSubDecor(AppCompatDelegateImpl.java:842)
    at androidx.appcompat.app.AppCompatDelegateImpl.ensureSubDecor(AppCompatDelegateImpl.java:809)
    at androidx.appcompat.app.AppCompatDelegateImpl.findViewById(AppCompatDelegateImpl.java:633)
    at androidx.appcompat.app.AppCompatActivity.findViewById(AppCompatActivity.java:259)
    at com.kuldeep.justjava.MainActivity.<init>(MainActivity.java:11)
    at java.lang.Class.newInstance(Native Method)
    at android.app.AppComponentFactory.instantiateActivity(AppComponentFactory.java:95)
    at androidx.core.app.CoreComponentFactory.instantiateActivity(CoreComponentFactory.java:45)
    at android.app.Instrumentation.newActivity(Instrumentation.java:1253)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3631)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3903) 
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85) 
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2328) 
    at android.os.Handler.dispatchMessage(Handler.java:106) 
    at android.os.Looper.loop(Looper.java:255) 
    at android.app.ActivityThread.main(ActivityThread.java:8212) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:632) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1049) 

2021-12-01 09:02:26.092 23507-23507/com.kuldeep.justjava I/Process:發送信號。 PID:23507 SIG:9

我的代碼

package com.kuldeep.justjava;

導入androidx.appcompat.app.AppCompatActivity;

導入 android.os.Bundle;

導入 android.view.View;

導入 android.widget.TextView;

公共 class MainActivity 擴展 AppCompatActivity {

TextView textView2 = findViewById(R.id.textView2);

TextView textView4 = findViewById(R.id.textView4);

int quantity = Integer.parseInt(textView2.getText().toString());

String s;

public void subtraction(View view){
    if(quantity != 0){
        quantity--;
    }
    s = Integer.toString(quantity);
    textView2.setText(s);
}

public void plus(View view){
    quantity++;
    s = Integer.toString(quantity);
    textView2.setText(s);
}

public void order(View view){
    int price = 5 * quantity;
    String p = "$ " + price;
    textView4.setText(p);
}

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

}

}

布局

將您的findViewById()代碼移至onCreate() ,您會沒事的。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    TextView textView2 = findViewById(R.id.textView2);
    TextView textView4 = findViewById(R.id.textView4);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM