FindViewById (int) возвращает null на одной конкретной кнопке в Android 3.1 в других версиях.

Это мой первый вопрос, но я пытаюсь спросить правильно.

Поскольку заголовок говорит только на одной кнопке и только в android 3.1 findViewById (int) возвращает null. Тестирование на Android 2.2 работает, и все остальные кнопки находятся в обеих версиях Android. Он находит кнопки до этой конкретной строки, а затем.

public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); Button buttonInfo = (Button)findViewById(R.id.buttonInfo);//fine buttonInfo.setOnClickListener(this); ... Button buttonCallOpScreen = (Button)findViewById(R.id.buttonCallOpScreen);//always returns null in android 3.1 ... Button buttonTakePicture = (Button)findViewById(R.id.buttonTakePictureMain);//fine buttonTakePicture.setOnClickListener(this); } 

main.xml :

(Я знаю, что я не должен использовать px , но он должен работать только на моем устройстве, так что это нормально для этого случая.)

 <Button android:id="@+id/buttonInfo" android:text="" android:layout_width="332px" android:layout_height="100px" android:background="@drawable/btn_team" /> ... <Button android:id="@+id/buttonCallOpScreen" android:text="" android:layout_width="332px" android:layout_height="100px" android:background="@drawable/btn_operator" /> ... <Button android:id="@+id/buttonTakePictureMain" android:text="" android:layout_width="80px" android:layout_height="80px" android:background="@drawable/btn_take_picture" android:layout_gravity="bottom|left" /> 

Любая помощь будет оценена, спасибо до сих пор.


Ответ:

Это оказалось более чем уродливым. Поскольку в этом проекте работает несколько человек, похоже, это изменило имя в макете normal / main.xml. Хотя Android-версии до 3.1, похоже, загружают layout / main.xml, новые используют layout-normal / main.xml. И поскольку это более чем понятно, если идентификатор этой кнопки отличается от findViewById (int), должен возвращать значение null.

Извините за то, что беспокоило вас, и спасибо за комментарии!

Поскольку у меня есть менее 100 репутации, я не могу ответить на свой вопрос, чтобы закрыть его, если кто-нибудь может опубликовать этот ответ, я бы принял его, спасибо.

Следующий ответ был обнаружен человеком, который задал вопрос. Подробности:

Поскольку в этом проекте работает несколько человек, похоже, это изменило имя в макете normal / main.xml. Хотя Android-версии до 3.1, похоже, загружают layout / main.xml, новые используют layout-normal / main.xml. И поскольку это более чем понятно, если идентификатор этой кнопки отличается от findViewById (int), должен вернуть значение null.

Intereting Posts
Публиковать библиотеку Android для jcenter: gradle bintrayUpload не находит библиотеки Как просмотреть трассировку стека ошибок в android? Совместное использование фейкеров в Android Android MIDI Threading InteruptedException – сообщения Aftertouch Android Geofencing (Polygon) Genymotion, «Не удалось загрузить движок VirtualBox» на Mavericks. VBox настроен правильно Есть ли способ узнать, установлена ​​ли sdcard или не установлена ​​вообще? Android CoordinatorLayout – несоответствия между версиями Android Как я могу уменьшить объемный вид, когда отображается пользовательский вид Невозможно вывести правильный хэш в Java. Что не так? Как найти путь к файлу базы данных в Android Emulator? Viewpager и FragmentPagerAdapter: удаление вида страницы Невозможно разрешить действия для: Намерения, когда контрольно-измерительная деятельность IllegalArgumentException: поставщик не использует: null на Maps V1 Android Robolectric Gradle – java.lang.OutOfMemoryError: пространство PermGen