BaseFragmentActivityApi16.startActivityForResult (намерение, int, Bundle) бросает ошибку при настройке Android O

Я начал таргетинг на android O в своем проекте. Я получаю сообщение об ошибке при вызове startActivityForResult(intent, int, Bundle) с ошибкой, говорящей, что он может быть вызван только из идентификатора группы com.android.support.

Gradle:

compile 'com.android.support:design:26.0.0'
compile 'com.android.support:cardview-v7:26.0.0'
compile 'com.android.support:support-v13:26.0.0'

Ответы

Ответ 1

Это немного поздно, но я нашел обходное решение. Я попробовал ActivityCompat.startActivityForResult(Activity, intent, int, Bundle); и предупреждение исчезло!

Ответ 2

Редактировать:

По этой ссылке это ошибка. Чтобы обходной путь, Добавьте этот комментарий над строкой кода, который дает предупреждение:

//noinspection RestrictedApi

Старый Ans:

Надеюсь, вы не импортируете неправильную библиотеку. Библиотека поддержки фрагментов поддерживает фрагмент для устройств, работающих под управлением Android3.0.

Согласно этому сообщению в SO

Также не забудьте использовать Activity, если вы используете android.app.Fragment; используйте FragmentActivity, если вы используете android.support.v4.app.Fragment. Никогда не прикрепляйте файл android.support.v4.app.Fragment к android.app.Activity, так как это вызовет исключение.

android.app.Fragment отличается от android.support.v4.app.Fragment.

Библиотека поддержки - аннотированная @RestrictTo(LIBRARY_GROUP), а также @hide - она не должна быть публичным API.

Ответ 3

Используйте это в build.gridle

android {lintOptions {отключить 'RestrictedApi'}}

Предупреждение: использование этого может скрыть другие ошибки в вашем проекте. Он будет подавлять все ошибки этого типа.