NoSuchFieldError на findViewById ()

Есть два андроидных проекта, которые я хочу объединить, один из них – Main, а другой – как Library. Но у меня есть некоторые проблемы на этой линии:

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 

Я попробовал Project Clean … также у меня есть поддержка android-v4.jar по моим зависимостям

И это мой след:

 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) 

Также здесь макет:

 <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> 

У меня была такая же ошибка, и оказалось, что ресурс был переопределен.

Если у вас есть один проект, работающий как библиотека, объявляющая некоторый идентификатор в данном XML-файле, то ваш основной проект переопределяет этот XML, исходный идентификатор отсутствует, но вы не увидите ошибку до времени выполнения.

В моем случае партнер удалил и передал XML из проекта, а затем добавил его обратно в проект библиотеки. Subclipse, похоже, не заметил этого, потому что я был в курсе событий, но XML был в основном проекте.

Ну, я китайский. Мой английский не очень хорош.

У меня тоже вопрос.

Решение может быть: Имя xml-файла повторяется, например: a.xml находится в вашем проекте библиотеки, в то же время a.xml находится в вашем основном проекте. Поэтому, пожалуйста, измените одно из имен xml.

Чтобы разработать решение @ Moxor, вы можете:

  1. Decalare dummy layout xml и присвойте отсутствующие идентификаторы некоторым фиктивным представлениям.
  2. Объявите недостающие идентификаторы как ресурсы, так же, как вы объявляете строковый ресурс: http://developer.android.com/guide/topics/resources/more-resources.html#Id

Уборка проекта работала для меня.