Es mi primera pregunta, pero estoy tratando de preguntar correctamente.findViewById (int) devuelve nulo en un botón específico en Android 3.1 otras versiones está bien
Como el título dice solo en un botón y solo en Android 3.1 findViewById (int) devuelve null. Las pruebas en Android 2.2 funcionan y todos los demás botones se encuentran en ambas versiones de Android. Encuentra botones antes de esta línea específica y luego.
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
:
(. Yo sé que no debo usar px
, sino que hará trabajar sólo en mi dispositivo, por lo que está muy bien para este caso)
<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" />
Cualquier ayuda sería apreciada, gracias hasta ahora.
Respuesta:
Resultó ser una más fea. Como hay varias personas trabajando en este proyecto, una de ellas parece haber cambiado el nombre en el layout-normal/main.xml. Mientras que las versiones de Android anteriores a 3.1 parecen cargar layout/main.xml, las más nuevas usan layout-normal/main.xml. Y como es más que comprensible si la identificación de ese botón es diferente findViewById (int) tiene que devolver nulo.
¡Perdón por molestarlo con eso y gracias por los comentarios!
Como tengo menos de 100 reputación, no puedo responder mi propia pregunta para cerrarla, si alguien puede publicar esta respuesta, la acepto, gracias.
¿Ha intentado limpiar el proyecto? –
seleccione el proyecto y limpie y reconstruya el proyecto desde la barra de menú del proyecto – Pratik
gracias por esa respuesta rápida, ya intenté - sin éxito – Martin