![](/img/trans.png)
[英]I'm trying to mock a list of strings but it's not working. I'm not able to figure out the problem
[英]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.