2013-04-25 15 views
25

Są dwa projekty Android, które chcę scalić, jeden jest główny, a drugi jest połączony jako biblioteka. Ale mam pewne problemy na tej linii:NoSuchFieldError na findViewById()

Button modificarC; 
protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     this.requestWindowFeature(Window.FEATURE_NO_TITLE); 
     setContentView(R.layout.activity_menu_calificaciones); 
modificarC = (Button) findViewById(R.id.btn_aseso); //HERE 

próbowałem projektów Czystej ... też mam android-support-v4.jar na moich zależności

I to jest mój ślad:

04-24 19:39:52.568: E/AndroidRuntime(9486): FATAL EXCEPTION: main 
04-24 19:39:52.568: E/AndroidRuntime(9486): java.lang.NoSuchFieldError: com.utez.sistemas.sam.R$id.btn_aseso 
04-24 19:39:52.568: E/AndroidRuntime(9486):  at com.utez.sistemas.sam.calificaciones.CalificacionesActivity.onCreate(CalificacionesActivity.java:67) 
04-24 19:39:52.568: E/AndroidRuntime(9486):  at android.app.Activity.performCreate(Activity.java:4465) 
04-24 19:39:52.568: E/AndroidRuntime(9486):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1052) 
04-24 19:39:52.568: E/AndroidRuntime(9486):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1932) 
04-24 19:39:52.568: E/AndroidRuntime(9486):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1993) 
04-24 19:39:52.568: E/AndroidRuntime(9486):  at android.app.ActivityThread.access$600(ActivityThread.java:127) 
04-24 19:39:52.568: E/AndroidRuntime(9486):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1159) 
04-24 19:39:52.568: E/AndroidRuntime(9486):  at android.os.Handler.dispatchMessage(Handler.java:99) 
04-24 19:39:52.568: E/AndroidRuntime(9486):  at android.os.Looper.loop(Looper.java:137) 
04-24 19:39:52.568: E/AndroidRuntime(9486):  at android.app.ActivityThread.main(ActivityThread.java:4507) 
04-24 19:39:52.568: E/AndroidRuntime(9486):  at java.lang.reflect.Method.invokeNative(Native Method) 
04-24 19:39:52.568: E/AndroidRuntime(9486):  at java.lang.reflect.Method.invoke(Method.java:511) 
04-24 19:39:52.568: E/AndroidRuntime(9486):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790) 
04-24 19:39:52.568: E/AndroidRuntime(9486):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557) 
04-24 19:39:52.568: E/AndroidRuntime(9486):  at dalvik.system.NativeStart.main(Native Method) 

również tutaj jest układ:

<LinearLayout 
      style="@style/LoginFormContainer" 
      android:layout_width="253dp" 
      android:layout_height="260dp" 
      android:layout_marginLeft="15dp" 
      android:layout_marginTop="30dp" 
      android:orientation="vertical" > 

      <Button 
       android:id="@+id/btn_alta" 
       android:layout_width="match_parent" 
       android:layout_height="63dp" 
       android:layout_marginLeft="25dp" 
       android:layout_marginTop="5dp" 
       android:background="@drawable/btn_altacalif" 
       android:contentDescription="@string/action_sign_in_register" 
       android:paddingLeft="32dp" 
       android:paddingRight="32dp" 
       android:textAlignment="center" /> 

      <Button 
       android:id="@+id/btn_aseso" 
       android:layout_width="match_parent" 
       android:layout_height="0dp" 
       android:layout_marginLeft="25dp" 
       android:layout_marginTop="5dp" 
       android:layout_weight="0.16" 
       android:background="@drawable/btn_modcalif" 
       android:contentDescription="@string/action_sign_in_register" 
       android:paddingLeft="32dp" 
       android:paddingRight="32dp" 
       android:textAlignment="center" /> 

     </LinearLayout> 
+0

Czy 'btn_aseso' jest polem w pliku XML układu" activity_menu_calificaciones "? –

+0

Tak, już edytowałem moje pytanie. –

+0

Twój układ wygląda dobrze dla mnie. To musi być coś z twoim projektem. Zakładam, że plik 'activity_menu_calificaciones' jest obecny tylko w jednym z projektów. –

Odpowiedz

58

miałem ten sam błąd i okazuje się, th w zasobie został nadpisany.

Jeśli masz jeden projekt działający jako biblioteka, która deklaruje jakiś identyfikator w danym pliku XML, to twój główny projekt na nowo definiuje, że XML, oryginalny identyfikator zniknął, ale nie zobaczysz błędu do czasu wykonywania.

W moim przypadku partner usunął i zatwierdził kod XML z projektu, a następnie dodał go z powrotem do projektu bibliotecznego. Subclipse nie zauważył tego, ponieważ byłem na bieżąco, ale XML był tam na głównym projekcie.

+4

Tak, to jest to! Dwa pliki układu o tej samej nazwie. Dziękuję Ci! – JerabekJakub

+1

Taki jak głupi błąd ... łatwy do naprawienia, ale trudny do znalezienia ... Po prostu popełniłem ten sam błąd, tak jak na twój post. – velval

+1

@JerabekJakub Twój komentarz uratował moje dni pracy :) Właśnie znalazłem, że użyłem tego samego nazwanego xmls w moim projekcie, i zmieniłem ich nazwę i błąd zniknął – Jayanth

37

Cóż, jestem Chińczykiem. Mój angielski nie jest dobry.

Mam również pytanie.

Rozwiązaniem może być: Nazwa pliku XML jest powtarzane, np a.xml jest w projekcie biblioteki, w tym samym czasie, a.xml jest w głównej projektu. , więc zmień jedną z nazw xml.

+0

To mi pomogło. Mam ten problem. Zmienianie nazw XML działania działało. Jednak nie mogę tak naprawdę myśleć o tym. – JaydeepW

+0

To pomogło i mój problem został rozwiązany.Miałem zduplikowane pliki xml w dwóch projektach lib, jeden to framework, a drugi jest wspólny tam, gdzie powszechnie używany jest framework jako projekt lib. Usunięcie xml z wspólnego pasuje do mnie i rozwiązało problem. – Tahir

+0

I nie było tam pola w pliku XML, który był we wspólnym projekcie lib. Plik z frameworka został zastąpiony przez wspólny projekt biblioteki i ponieważ w zwykłym xml brakowało tego pola, które podawało błąd. głupi błąd: P – Tahir

-1

Czyszczenie projekt pracował dla mnie.

+0

Ten problem dotyczy duplikatu pliku xml, w projekcie biblioteki i głównym projekcie – Mahesh

Powiązane problemy