После обновления SDK (23), я получаю эту ошибку lint, я не вносил никаких изменений в свой код и работал отлично на устройствах с уровнем api 9. Также я не вызываю android.app.Activity # onCreateView в моем коде вообще. Если я нажму кнопку автофиксировать, он поместит @SuppressLint («NewApi») в объявление класса @SuppressLint("NewApi") public class MyActivity extends android.support.v4.app.FragmentActivity
, как это, и ошибка исчезнет, я хочу быть уверенным, что это путь.Для вызова требуется уровень API 11 (текущий минимум 9) android.app.Activity # onCreateView
ответ
Я столкнулся с той же проблемой.
Если вы посмотрите на Javadoc для класса активности (http://developer.android.com/reference/android/app/Activity.html#onCreateView%28android.view.View,%20java.lang.String,%20android.content.Context,%20android.util.AttributeSet%29), вы увидите, что метод общественности Посмотреть onCreateView (Посмотреть родитель, имя String, контекст Контекст, AttributeSet ATTRS) был добавлен в API 11 .
Вместо использования @SuppressLint («NewApi») на уровне объявления класса я добавил этот конкретный метод к моему коду и подавил предупреждение lint для объявления метода. Как так:
@SuppressLint("NewApi")
public View onCreateView(View parent, String name, Context context, AttributeSet attrs)
{
if(Build.VERSION.SDK_INT >= 11)
return super.onCreateView(parent, name, context, attrs);
return null;
}
Таким образом, любые будущие дополнения к коду класса равно будут проверяться пухом, но ворс остановит этот метод маркировки с ошибкой.
ETA: Javadoc для класса указывает, что оба метода onCreateView (...) возвращают значение null в качестве поведения по умолчанию и что метод pre API 11 имеет пустую реализацию.
Это не ответ, потому что их код вообще не вызывает/переопределяет 'onCreateView'. Это ошибка в Android SDK; [здесь проблема для звезды] (https://code.google.com/p/android/issues/detail?id=188677). – nkorth
@nkorth, 'onCreateView' вызывается андроидом 'при раздувании с помощью LayoutInflater, возвращаемого getSystemService (Class).' Api docs говорят так, прямо здесь, в ссылке, которую я предоставил, которую вы не удосужились прочитать. Во-вторых, речь шла об использовании @SuppressLint для подавления предупреждения, а не об источнике ошибки. Но вам нелегко найти ссылку на него. – user5292387
@SuppressLint («NewApi») - это аннотация, используемая инструментом Android Lint.
Что-то в вашем коде не является оптимальным или может привести к сбою. Пропустив NewApi там, вы подавляете все предупреждения, которые говорят вам, если вы используете какие-либо API введенные после minSdkVersion
Для получения дополнительной информации и принять решение выглядеть Android Lint проверка: HERE
Также вы можете использовать @ TargetApi.
Разница заключается в том, что с помощью @TargetApi вы объявляете через параметр какой уровень API, который вы указали в своем коде, чтобы ошибка могла появиться снова, если позднее вы модифицируете метод, чтобы попытаться ссылаться на нечто более новое, чем Уровень API, указанный в @TargetApi.
@TargetApi - лучшая аннотация, позволяет рассказать инструменты сборки «Хорошо, я исправил эту категорию проблем» более тонко.
На самом деле я вообще не хочу использовать аннотации, и я также не нуждаюсь в них, потому что мой код вообще не использует Activity # onCreateView. Ошибка возникает из-за самого андроида api. Я пытаюсь найти лучший обходной путь для собственной ошибки андроида. Ваш ответ полезен, и спасибо за это, однако он не отвечает на мой фактический вопрос. – user65721
Как уже упоминалось пользователем5292387, oncreateview был добавлен. Вместо того, чтобы подавлять пуха я использовал
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
@Override
public View onCreateView(View parent, String name, Context context, AttributeSet attrs)
{
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB ?
super.onCreateView(parent, name, context, attrs) :
super.onCreateView(name, context, attrs);
}
Первый вызов супер для устройств, работающих под управлением ОС Android Honeycomb и выше. Второй вызов супер - для устройств с меньшим, чем Honeycomb Android OS. Я думаю, что он выглядит чище, а не возвращает null. Однако в документации по android указывается, что возвращение null приведет к поведению по умолчанию. Любое решение должно работать, однако я скептически отношусь к возврату null, поскольку это может иметь неблагоприятные последствия в более поздних версиях Android SDK.
Кое-что, что кажется всем отсутствующим, заключается в том, что он использует FragmentActivity из библиотеки поддержки v4. По определению этот класс должен быть полностью совместим с Android API 4. Предупреждение не должно выдаваться, поскольку FragmentActivity предоставляет собственную реализацию onCreateVivew().
Мне кажется, это ошибка Lint.
Я думаю, что @SupressLint («NewAPI») - это самый простой способ обойти ошибку Lint (поскольку я не считаю, что это ошибка вообще). Также помните, что ошибки Lint не являются ошибками компиляции. Это советы для вас, что у вас могут быть проблемы с вашим кодом, или есть лучший способ сделать это.
- 1. Для вызова требуется уровень API 11 (текущий минимум 8) android.app.Activity # onCreateView
- 2. Для вызова требуется уровень API 11 (текущий минимум 8): android.app.Activity # onCreateView FragmentActivity
- 3. Для вызова требуется уровень API 14 (текущий минимум равен 11)
- 4. Для вызова требуется уровень API 11 (текущий минимум 8): android.app.Activity # invalidateOptionsMenu
- 5. Для вызова требуется уровень API 23 (текущий минимум равен 14): android.app.Activity # requestPermissions, checkSelfPermission
- 6. ActionBarSherlock дает тонны «для вызова требуется уровень API 11 (текущий минимум 7)». Ошибки
- 7. Для вызова требуется уровень API 12 (текущий минимум равен 9): android.os.Bundle # getString
- 8. для вызова требуется уровень api 9 (текущий минимум 7) java.text.normalizer # normalize
- 9. Для вызова требуется уровень API 21, текущий мин - 8
- 10. Для вызова требуется уровень API 16 (текущий минимум равен 14): android.app.Notification.Builder # build
- 11. Для вызова требуется уровень API 24 (текущий минимум равен 12): android.icu.util.calendar
- 12. Android lint: не отображает сообщение «Для вызова требуется уровень API 17 (текущий минимум равен 14)»
- 13. Для вызова требуется уровень API 24 (текущий минимум 8): новый android.location.GnssStatus.Callback
- 14. для вызова требуется уровень API 21 (текущий минимум равен 17): android.hardware.camera2.CameraDevice.StateCallback
- 15. Для вызова требуется уровень API 16 (текущий минимум 10): android.widget.ImageView # getMaxWidth
- 16. Для Android AppCompat требуется уровень API 11
- 17. Для вызова требуется уровень API 11 (текущий мин. 8): android.widget.EditText # setAlpha
- 18. Для Android Call требуется уровень API 13 (текущий минимум 10): android.view.Display # getSize
- 19. onCreateView() Требуется уровень API 11 .. как поддерживать действия на более старых устройствах (активность Android)
- 20. Ripple требует API уровня 21 (текущий минимум 11), android?
- 21. <animated-vector> требуется уровень API 21 (текущий минимум равен 15)
- 22. У меня ошибка «Для вызова требуется уровень API 11 (текущий минимум 8)». Это то, что я могу найти в своем проекте (ECLISPE)
- 23. Для вызова BigDecimal требуется уровень API 24 Android
- 24. Alertdialog.Builder setview: для вызова требуется уровень API 21
- 25. В Android, NetworkInterface.getInterfaceAddresses() требуется уровень API 9. Как мне это сделать, используя уровень API 8?
- 26. Как обновить текущий уровень API
- 27. вызова требуется уровень 14 API (ток мин 8): android.view.ViewGroup # canScrollHorizontally
- 28. вызова требуется уровень API 16 (ток мин 14)
- 29. вызова требуется уровень API 16 (ток мин 14) withEndAction
- 30. Как решить этот «Класс требует уровня API 11 (текущий минимум 8)»
Возможный дубликат [Для вызова требуется уровень API 11 (текущий мин. 8) android.app.Activity # onCreateView] (http://stackoverflow.com/questions/32181705/call-requires-api-level-11current-min -is-8-android-app-activityoncreateview) – Murmel