¿Por qué estoy recibiendo este error "recurso esperado de tipo raw" en Android Studio?

Estaba intentando fijar el papel pintado del defecto usando un botón pero por alguna razón cuando fijé el InputStream en el método de OnCreate, consigo este error "recurso esperado del tipo crudo". Estoy referenciando la carpeta dibujable y usando la imagen icon.png que está en la carpeta dibujable. Yo estaba siguiendo los tutoriales en la serie NewBoston y parece que funciona bien para Travis, pero por alguna razón la mía no funciona en Android Studio. ¿Cuál podría ser el error? Gracias

Camera.java:

package com.example.user.cameraapplication; import android.app.Activity; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.provider.MediaStore; import android.view.View; import android.widget.Button; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.Switch; import java.io.IOException; import java.io.InputStream; /** * Created by user on 16-08-2015. */ public class Camera extends Activity implements View.OnClickListener{ ImageView iv; Button b1,b2; ImageButton img; Intent i; final static int cameractivity = 0; Bitmap b; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.photo); inititalize(); InputStream is = getResources().openRawResource(R.drawable.icon); b = BitmapFactory.decodeStream(is); } private void inititalize() { iv = (ImageView)findViewById(R.id.iView1); img = (ImageButton)findViewById(R.id.imgbtn); b1 = (Button)findViewById(R.id.btn1); b2 = (Button)findViewById(R.id.btn2); b1.setOnClickListener(this); b2.setOnClickListener(this); } @Override public void onClick(View v) { switch(v.getId()){ case R.id.btn1: try { getApplicationContext().setWallpaper(b); } catch (IOException e) { e.printStackTrace(); } break; case R.id.imgbtn: i = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(i,cameractivity); break; } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(resultCode==RESULT_OK) { Bundle extras = data.getExtras(); b = (Bitmap)extras.get("data"); iv.setImageBitmap(b); } } } 

Imagen:

Imagen

El error se produjo porque Android Studio esperaba un archivo de recursos de tipo raw.

Solución 1:

Cree una nueva carpeta en su carpeta "res" llamada "raw", y coloque su icono allí. La carpeta en bruto debe contener todos los archivos multimedia de la aplicación.

Luego reemplaza

 InputStream is = getResources().openRawResource(R.drawable.icon); 

con

 InputStream is = getResources().openRawResource(R.raw.icon); 

Solución 2:

Otra solución es hacerlo así. Esto no requiere que cree una carpeta en bruto:

 InputStream is = getResources().openRawResource(+ R.drawable.icon); 

Reemplazar

 InputStream is = getResources().openRawResource(R.drawable.icon); 

Con

 InputStream is = getResources().openRawResource(+ R.drawable.icon); 
  • Hacer un lienzo transparente no transparente (tratando de sustituir el aspecto predeterminado de DragShadow con arrastrar y soltar en Android)
  • Android: realizar arrastrar y soltar mediante programación
  • Tamaño androide de la sombra del dragshadowbuilder
  • Cómo convertir la ubicación de toque de View en la ubicación de la pantalla HTML de WebView
  • Arrastrar y soltar sin eliminar del propietario
  • Drag'n'Drop ConcurentModificationException
  • ¿Cómo transformar currentTimeMillis a un formato de fecha legible?
  • Cómo crear una sombra de arrastre personalizada?
  • OnDragListener - ¿hay alguna biblioteca de compatibilidad para niveles de Android <11?
  • Cómo hacer Drag & Drop Button en Android
  • Drag n drop textview en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.