NoSuchMethodError cuando uso android.widget.RelativeLayout.setBackground

En android 4.2 mi aplicación funciona bien, pero cuando intento probarlo con Android 4.0.4 Tengo este mensaje de error:

04-16 15:06:46.601: E/AndroidRuntime(3844): java.lang.NoSuchMethodError: android.widget.RelativeLayout.setBackground 04-16 15:06:46.601: E/AndroidRuntime(3844): at com.myapp.MainActivity.cambiarPagina(MainActivity.java:271) 04-16 15:06:46.601: E/AndroidRuntime(3844): at com.myapp.MainActivity.cambiarPagina(MainActivity.java:119) 04-16 15:06:46.601: E/AndroidRuntime(3844): at com.myapp.MainActivity.access$0(MainActivity.java:116) 04-16 15:06:46.601: E/AndroidRuntime(3844): at com.myapp.MainActivity$2.onClick(MainActivity.java:70) 04-16 15:06:46.601: E/AndroidRuntime(3844): at android.view.View.performClick(View.java:3524) 04-16 15:06:46.601: E/AndroidRuntime(3844): at android.view.View$PerformClick.run(View.java:14202) 04-16 15:06:46.601: E/AndroidRuntime(3844): at android.os.Handler.handleCallback(Handler.java:605) 04-16 15:06:46.601: E/AndroidRuntime(3844): at android.os.Handler.dispatchMessage(Handler.java:92) 04-16 15:06:46.601: E/AndroidRuntime(3844): at android.os.Looper.loop(Looper.java:137) 04-16 15:06:46.601: E/AndroidRuntime(3844): at android.app.ActivityThread.main(ActivityThread.java:4499) 04-16 15:06:46.601: E/AndroidRuntime(3844): at java.lang.reflect.Method.invokeNative(Native Method) 04-16 15:06:46.601: E/AndroidRuntime(3844): at java.lang.reflect.Method.invoke(Method.java:511) 04-16 15:06:46.601: E/AndroidRuntime(3844): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:788) 04-16 15:06:46.601: E/AndroidRuntime(3844): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555) 04-16 15:06:46.601: E/AndroidRuntime(3844): at dalvik.system.NativeStart.main(Native Method) 

Yo uso setBackgroud para agregar algo de animación, como este código

 AnimationDrawable animation = new AnimationDrawable(); animation.addFrame(getResources().getDrawable(R.drawable.d1), 200); animation.addFrame(getResources().getDrawable(R.drawable.dio), 1000); animation.addFrame(getResources().getDrawable(R.drawable.da1), 200); animation.setOneShot(true); view.setBackground(animation); view.post(new Starter(animation)); 

Tengo la biblioteca de la ayuda agregada a mi proyecto, y no sé cómo resolver esto, ninguna ayuda será apreciated!

Que se añadió en API 16 , intente setBackgroundDrawable()

Además de la respuesta @dmon: se puede llamar al método apropiado de esta manera:

 if (Build.VERSION.SDK_INT >= 16) { layout.setBackground(animation); } else { layout.setBackgroundDrawable(animation); } 

Prueba esto, funcionó para mí:

 Bitmap bitmap = BitmapFactory.decodeFile(new ImageLoader().fullPath + "/desiredFilename.png"); Resources res = getResources(); BitmapDrawable bitmapDrawable = new BitmapDrawable(res, bitmap); int sdk = android.os.Build.VERSION.SDK_INT; if (sdk < android.os.Build.VERSION_CODES.JELLY_BEAN) ll.setBackgroundDrawable(bitmapDrawable); else ll.setBackground(bitmapDrawable); 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.