2013-04-25 43 views
25

Có hai dự án android mà tôi muốn hợp nhất, một là Chính và phần còn lại được liên kết dưới dạng Thư viện. Nhưng tôi có một số khó khăn về dòng này:NoSuchFieldError trên 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 

tôi đã cố gắng dự án sạch ... Tôi cũng có android-support-v4.jar trên phụ thuộc của tôi

Và đây là dấu vết của tôi:

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) 

Ngoài ra ở đây là cách bố trí:

<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

Có phải 'btn_aseso' là một trường trong tệp XML bố cục' activity_menu_calificaciones' của bạn không? –

+0

Có, tôi đã chỉnh sửa câu hỏi của mình. –

+0

Bố cục của bạn trông ổn với tôi. Nó phải là một cái gì đó với dự án của bạn thiết lập. Tôi giả sử rằng tệp 'activity_menu_calificaciones' chỉ xuất hiện trong một trong các dự án. –

Trả lời

58

tôi đã có lỗi tương tự và nó quay ra thứ tại tài nguyên bị ghi đè.

Nếu bạn có một dự án làm thư viện khai báo một số id trong một tệp XML, thì dự án chính của bạn xác định lại XML, id gốc đã biến mất, nhưng bạn sẽ không thấy lỗi cho đến khi chạy.

Trong trường hợp của tôi, một đối tác đã xóa và cam kết XML khỏi dự án, sau đó thêm nó trở lại trong dự án thư viện. Subclipse dường như không nhận thấy rằng bởi vì tôi đã được cập nhật, nhưng XML đã có trên dự án chính.

+4

Vâng, đúng vậy! Hai tệp bố cục có cùng tên. Cảm ơn bạn! – JerabekJakub

+1

Chẳng hạn như sai lầm ngớ ngẩn ... dễ khắc phục nhưng khó tìm ... Chỉ cần làm như vậy sai lầm thx cho bài đăng của bạn. – velval

+1

@JerabekJakub nhận xét của bạn đã lưu ngày làm việc của tôi :) tôi vừa tìm thấy tôi đã sử dụng cùng tên xml trong dự án của mình, và tôi đổi tên chúng và lỗi đi – Jayanth

37

Vâng, tôi là người Trung Quốc. Tiếng Anh của tôi không tốt.

Tôi cũng có câu hỏi.

Giải pháp có thể là: Tên tệp xml được lặp lại, ví dụ: a.xml nằm trong dự án thư viện của bạn, đồng thời, a.xml nằm trong dự án chính của bạn. vì vậy, vui lòng thay đổi một trong các tên xml.

+0

Điều này đã giúp tôi. Tôi có vấn đề này. Thay đổi các tên XML hoạt động đã làm các trick. Tuy nhiên tôi không thể thực sự nghĩ lý do cho việc này. – JaydeepW

+0

Điều này đã giúp và vấn đề của tôi đã được giải quyết ngay bây giờ.Tôi đã có các tập tin xml trùng lặp trong hai dự án lib một là khung và thứ hai là phổ biến nơi sử dụng chung khuôn khổ như dự án lib. Loại bỏ xml từ phổ biến phù hợp với tôi và giải quyết vấn đề. – Tahir

+0

Và trường không có trong tệp xml trong dự án lib phổ biến. Các tập tin từ khuôn khổ đã được thay thế bởi một lần trong dự án lib phổ biến và kể từ khi xml phổ biến đã bị mất rằng lĩnh vực nó đã đưa ra lỗi. sai lầm ngớ ngẩn: P – Tahir

-1

sạch các dự án làm việc cho tôi.

+0

Sự cố này liên quan đến tệp xml trùng lặp, trong dự án thư viện và dự án chính – Mahesh

Các vấn đề liên quan