2014-02-21 3 views
2

При попытке просмотра файла Android макет в графическом редакторе макета в Eclipse, я получаю ошибку "java.lang.NullPointerException: Exception details are logged in Window > Show View > Error Log", где журнал ошибок просто говорит "main.xml: java.lang.NullPointerException." Это только с этим одним конкретным проектом - я переместил это main.xml в другой проект, а графический редактор работает, и я переместил другие (рабочие) макеты в этот проект, и они перестали работать.Затмение Android Layout NullPointerException

Я пробовал Android -> Fix Project Properties, но это не помогло, и я не знаю, какие другие настройки повлияют на это. Любые советы о том, с чего начать смотреть, будут высоко оценены!

Редактировать: Добавлен код. Кроме того, это использовалось для компиляции и запуска успешно, но я добавил файлLabel TextView в файл MainActivity.java, и теперь он сбой в строке fileLabel.setText(timestamp) с использованием исключения NullPointerException (LogCat, опубликованного ниже).

main.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" > 

    <Button 
     android:id="@+id/btnStart" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:text="Start" /> 

    <Button 
     android:id="@+id/btnStop" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:text="Stop" /> 

</LinearLayout> 

<TextView 
    android:id="@+id/fileRecordingLabel" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" 
    android:text="File being recorded: " 
    android:textAppearance="?android:attr/textAppearanceSmall" /> 

<TextView 
    android:id="@+id/fileLabel" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentRight="true" 
    android:layout_alignParentTop="true" 
    android:layout_marginRight="11dp" 
    android:text="Oct 22, 2013 12:50:30" 
    android:textAppearance="?android:attr/textAppearanceSmall" /> 

MainActivity.java

@EActivity (R.layout.main) 
public class MainActivity extends Activity { 
@ViewById 
TextView lblWritingTo; 
@ViewById 
TextView fileLabel; 

@Click 
public void btnStart() { 
    if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) { 
     String timestamp = new Timestamp(new Date().getTime()).toString().replace(' ', '_').replace(':', '-'); 
     String filepath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC).getAbsolutePath()+"/"+timestamp+".wav"; 

     lblWritingTo.setText("Writing to "+filepath); 
     fileLabel.setText(timestamp); 
    } else 
     Toast.makeText(this, "Can't access external storage", Toast.LENGTH_LONG).show(); 
} 

LogCat:

02-24 02:12:44.192: E/AndroidRuntime(1595): FATAL EXCEPTION: main 
02-24 02:12:44.192: E/AndroidRuntime(1595): Process: com.camdroid.test, PID: 1595 
02-24 02:12:44.192: E/AndroidRuntime(1595): java.lang.NullPointerException 
02-24 02:12:44.192: E/AndroidRuntime(1595):  at com.camdroid.test.MainActivity.btnStart(MainActivity.java:52) 
02-24 02:12:44.192: E/AndroidRuntime(1595):  at com.camdroid.test.MainActivity_$1.onClick(MainActivity_.java:47) 
02-24 02:12:44.192: E/AndroidRuntime(1595):  at android.view.View.performClick(View.java:4424) 
02-24 02:12:44.192: E/AndroidRuntime(1595):  at android.view.View$PerformClick.run(View.java:18383) 
02-24 02:12:44.192: E/AndroidRuntime(1595):  at android.os.Handler.handleCallback(Handler.java:733) 
02-24 02:12:44.192: E/AndroidRuntime(1595):  at android.os.Handler.dispatchMessage(Handler.java:95) 
02-24 02:12:44.192: E/AndroidRuntime(1595):  at android.os.Looper.loop(Looper.java:137) 
02-24 02:12:44.192: E/AndroidRuntime(1595):  at android.app.ActivityThread.main(ActivityThread.java:4998) 
02-24 02:12:44.192: E/AndroidRuntime(1595):  at java.lang.reflect.Method.invokeNative(Native Method) 
02-24 02:12:44.192: E/AndroidRuntime(1595):  at java.lang.reflect.Method.invoke(Method.java:515) 
02-24 02:12:44.192: E/AndroidRuntime(1595):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777) 
02-24 02:12:44.192: E/AndroidRuntime(1595):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593) 
02-24 02:12:44.192: E/AndroidRuntime(1595):  at dalvik.system.NativeStart.main(Native Method) 
+0

Опубликовать полный logcat –

+0

Это происходит до компиляции - просто при попытке просмотреть файл в графическом редакторе. Ничего не появляется в logcat. – camdroid

+0

Похоже, AndroidAnnotations не перекомпилирует код «back-end». Добавляя строки, такие как 'fileLabel = (TextView) findView ...' в MainActivity_.java (файл AA), программа работает. Но я думаю, что теперь вопрос заключается в том, почему AA не обновляет свой файл каждый раз, когда обновляется мой файл, как и следовало ожидать? – camdroid

ответ

2

ли вы очистить проект?
проект -> чистый (выберите проект)

+0

Да, попробовал очистить проект и перезапустить Eclipse, ошибка все еще происходит. – camdroid

0

Очистите свой проект и постройте.

project --> clean 

Перезапустить затмение после очистки проекта.

+0

Да, я пробовал это, не повезло. :/ – camdroid

+0

@camdroid, тогда покажите мне свой код ... – rajshree

+0

Отредактировано для добавления кода – camdroid

Смежные вопросы