В моем приложении я, похоже, не могу назвать какие-либо объекты макета в своем приложении. приложение будет разбиваться, если я получаю доступ к любому классу, который включает в себя код, который использует XML файл. такие строки
mButton = (Button)findViewById(R.id.get);
cweight = (EditText)findViewById(R.id.cweight);
nweight = (EditText)findViewById(R.id.nweight);
t = (TextView)findViewById(R.id.out);
Эти строки кода работали до этого, и файлы макетов, которые они называются, существуют.
logcat для этого ниже и смотрит на него, я не вижу, откуда эта проблема. потому что этот код работает несколько дней назад.
05-23 16:12:43.790: E/AndroidRuntime(313): FATAL EXCEPTION: main
05-23 16:12:43.790: E/AndroidRuntime(313): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.b00348312.workout/com.b00348312.workout.WorkoutChoice}: java.lang.NullPointerException
05-23 16:12:43.790: E/AndroidRuntime(313): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
05-23 16:12:43.790: E/AndroidRuntime(313): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
05-23 16:12:43.790: E/AndroidRuntime(313): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
05-23 16:12:43.790: E/AndroidRuntime(313): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
05-23 16:12:43.790: E/AndroidRuntime(313): at android.os.Handler.dispatchMessage(Handler.java:99)
05-23 16:12:43.790: E/AndroidRuntime(313): at android.os.Looper.loop(Looper.java:123)
05-23 16:12:43.790: E/AndroidRuntime(313): at android.app.ActivityThread.main(ActivityThread.java:4627)
05-23 16:12:43.790: E/AndroidRuntime(313): at java.lang.reflect.Method.invokeNative(Native Method)
05-23 16:12:43.790: E/AndroidRuntime(313): at java.lang.reflect.Method.invoke(Method.java:521)
05-23 16:12:43.790: E/AndroidRuntime(313): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
05-23 16:12:43.790: E/AndroidRuntime(313): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
05-23 16:12:43.790: E/AndroidRuntime(313): at dalvik.system.NativeStart.main(Native Method)
05-23 16:12:43.790: E/AndroidRuntime(313): Caused by: java.lang.NullPointerException
05-23 16:12:43.790: E/AndroidRuntime(313): at com.b00348312.workout.WorkoutChoice.onCreate(WorkoutChoice.java:67)
05-23 16:12:43.790: E/AndroidRuntime(313): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
05-23 16:12:43.790: E/AndroidRuntime(313): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
05-23 16:12:43.790: E/AndroidRuntime(313): ... 11 more
ok, так что просматривайте решения, учитывая, что консенсус, по-видимому, состоит в том, что его исключение нулевого указателя в строке 67, но это первая строка, указанная выше. другие предлагаемые решения - использовать setContent (представление вида), которые я сделал в начале моего метода onCreate.
класс отлично работает, когда строки, указанные выше, отсутствуют, и они работали до этого, поэтому я не уверен, где проблема.
В зависимости от того, что использует ваша Activity
, есть пара вещей, которые могут быть неправильными. Вы сделали setContentView(View view)
если вы просто устанавливаете представление? В противном случае, если вы раздуваете представление, вам нужно вызвать view.findViewById(id)
. Таким образом, он вызывает это на вид, который вы просто завыли, иначе он его не найдет.
EDIT: Я бы setContentView(View view)
, что вам нужно вызвать setContentView(View view)
перед тем, как сделать поиск, поэтому setContentView(View view)
должен быть до того, как вы findViewById(id)
если вы так поступаете.
Похоже, проблема WorkoutChoice
, строка 67. Вы используете объект, значение которого равно null:
05-23 16:12:43.790: E/AndroidRuntime(313): Caused by: java.lang.NullPointerException
05-23 16:12:43.790: E/AndroidRuntime(313): at com.b00348312.workout.WorkoutChoice.onCreate(WorkoutChoice.java:67)