Intereting Posts
Фрагменты: удалить все фрагменты в виде Divider не работает для TitlePageIndicator с viewpagerindicator и actionbarsherlock Сокращение содержимого в TextView Ошибка «AndroidManifest.xml не объявляет Java-пакет» Уведомление о плагине Cordova (java) не входит в приложение – андроид Библиотека с зависимостями связок (fat aar) Android OCR tesseract: использование данных объектов Pixa для отображения ограничивающих прямоугольников Пользовательские макеты уведомлений и цвета текста Android Material Design – Как изменить цвет фона панели инструментов после CollapsingToolbarLayout рухнул Интеграция twitter в приложении для Android Запретить перенос TextView в родительский Звонок с использованием эмулятора Android Почему Locale.getDefault (). GetLanguage () в Android возвращает отображаемое имя вместо кода языка? Как запустить событие, когда кто-то щелкнет в любом месте экрана в приложении для Android? В чем разница между андроидом: использование – разрешение и использование – разрешение?

NoSuchMethodError, когда я использую android.widget.RelativeLayout.setBackground

В android 4.2 мое приложение работает нормально, но когда я пытаюсь проверить его с помощью android 4.0.4, у меня есть эта ошибка сообщения:

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) 

Я использую setBackgroud для добавления анимации, например, этот код

 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)); 

У меня есть библиотека поддержки, добавленная в мой проект, и я не знаю, как решить эту проблему, любая помощь будет оценена!

Solutions Collecting From Web of "NoSuchMethodError, когда я использую android.widget.RelativeLayout.setBackground"

Это было добавлено в API 16 , попробуйте setBackgroundDrawable()

В дополнение к ответу @dmon: вы можете назвать правильный метод таким образом:

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

Попытайтесь, это сработало для меня:

 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);