Tôi nhận được thông báo lỗi sau khi chạy ứng dụng cơ bản của mình. Ứng dụng này bao gồm một nút gọi là button1 và một textView được gọi là topLeft.Phát triển Android mới bắt đầu: vấn đề findViewById
07-01 15:33:02.754: D/AndroidRuntime(2334): Shutting down VM 07-01 15:33:02.754: W/dalvikvm(2334): threadid=1: thread exiting with
uncaught exception (group=0x40a13300) 07-01 15:33:02.984:
E/AndroidRuntime(2334): FATAL EXCEPTION: main 07-01 15:33:02.984:
E/AndroidRuntime(2334): java.lang.RuntimeException: Unable to instantiate activity
ComponentInfo{com.example.myfirstapp/com.example.myfirstapp.MainActivity}:
java.lang.NullPointerException 07-01 15:33:02.984:
E/AndroidRuntime(2334): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1983)
07-01 15:33:02.984: E/AndroidRuntime(2334): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
07-01 15:33:02.984: E/AndroidRuntime(2334): at android.app.ActivityThread.access$600(ActivityThread.java:130) 07-01
15:33:02.984: E/AndroidRuntime(2334): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
07-01 15:33:02.984: E/AndroidRuntime(2334): at android.os.Handler.dispatchMessage(Handler.java:99) 07-01
15:33:02.984: E/AndroidRuntime(2334): at android.os.Looper.loop(Looper.java:137) 07-01 15:33:02.984:
E/AndroidRuntime(2334): at android.app.ActivityThread.main(ActivityThread.java:4745) 07-01
15:33:02.984: E/AndroidRuntime(2334): at java.lang.reflect.Method.invokeNative(Native Method) 07-01
15:33:02.984: E/AndroidRuntime(2334): at java.lang.reflect.Method.invoke(Method.java:511) 07-01 15:33:02.984:
E/AndroidRuntime(2334): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
07-01 15:33:02.984: E/AndroidRuntime(2334): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 07-01
15:33:02.984: E/AndroidRuntime(2334): at dalvik.system.NativeStart.main(Native Method) 07-01 15:33:02.984:
E/AndroidRuntime(2334): Caused by: java.lang.NullPointerException
07-01 15:33:02.984: E/AndroidRuntime(2334): at android.app.Activity.findViewById(Activity.java:1825) 07-01
15:33:02.984: E/AndroidRuntime(2334): at com.example.myfirstapp.MainActivity.<init>(MainActivity.java:28) 07-01
15:33:02.984: E/AndroidRuntime(2334): at java.lang.Class.newInstanceImpl(Native Method) 07-01 15:33:02.984:
E/AndroidRuntime(2334): at java.lang.Class.newInstance(Class.java:1319) 07-01 15:33:02.984:
E/AndroidRuntime(2334): at android.app.Instrumentation.newActivity(Instrumentation.java:1053)
07-01 15:33:02.984: E/AndroidRuntime(2334): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1974)
07-01 15:33:02.984: E/AndroidRuntime(2334): ... 11 more
Khi cố gắng để sử dụng findViewById, lỗi này đi lên đề cập đến dòng 28.
Chương trình trông giống như sau:
package com.example.myfirstapp;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity implements OnClickListener{
int a = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
Button button1 = (Button) findViewById(R.id.button1);
TextView topLeft = (TextView) findViewById(R.id.textView2);
// button1.setOnClickListener(this);
public void onClick(View v) {
// TODO Auto-generated method stub
}
}
này có nghĩa là gì? Tại sao mã của tôi gặp sự cố khi thực hiện điều gì đó dọc theo các dòng đề cập đến tệp R.java?
R.java does have
public static final class id {
public static final int button1=0x7f080001;
public static final int menu_settings=0x7f080003;
public static final int textView1=0x7f080000;
public static final int textView2=0x7f080002;
Xin cảm ơn trước.
Ah, điều đó đã xảy ra. Cảm ơn bạn đã giúp đỡ! – ajskhan
Chắc chắn. Bạn nên "chấp nhận" câu trả lời nếu nó trả lời đầy đủ câu hỏi. Lưu ý rằng tỷ lệ phần trăm các câu trả lời được chấp nhận hiển thị bên dưới tên của bạn trong thẻ hồ sơ trên Stack Overflow và có tỷ lệ phần trăm cao hơn có khả năng sẽ giúp bạn có được câu trả lời tốt hơn và tốt hơn. –
Xong. Cảm ơn bạn. – ajskhan