Estou desenvolvendo uma aplicação android que tenho um evento no Button para abrir a camera:
No AndroiManifest.xml
<!-- Permissão para acessar a área de memória externa --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <!-- Permissão para acessar a câmera diretamente --> <uses-permission android:name="android.permission.CAMERA"/>
No MainActivit tenho um ImageView e um ImageButton
<ImageView android:id="@+id/imgv_imagem" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" app:srcCompat="@mipmap/ic_launcher" /> <ImageButton android:id="@+id/ibtn_tirarfoto" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="2" android:onClick="takePicture" app:srcCompat="@android:drawable/ic_menu_camera" />
Na Activity.java tenho o método que acionado no evento onclick do Button
public void takePicture(View v) { // Cria uma intent que será usada para abrir a aplicação nativa de câmera Intent i = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); // Indica na intent o local onde a foto tirada deve ser armazenada i.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(imageFile)); // Abre a aplicação de câmera startActivityForResult(i, REQUEST_PICTURE); }
A chamado do método startActivityForResult está abrindo um IllegalStateException e dá a seguinte mensagem “Could not execute method for android:onClick”
O app é ecerrado após isso. Aplico o mesmo código em uma outra aplicação e funciona. Alguém sabe o que pode ser?