BaseFragmentActivityApi16.startActivityForResult(intent,int,Bundle)在定位Android O时抛出错误

Nic*_*wen 19 android

我开始在我的项目中定位android O我在调用时遇到startActivityForResult(intent, int, Bundle)错误,说它只能从组ID com.android.support调用.

摇篮:

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'
Run Code Online (Sandbox Code Playgroud)

isl*_*rmd 19

这有点晚了,但我找到了一个解决方法.我试过ActivityCompat.startActivityForResult(Activity, intent, int, Bundle);了,警告消失了!


Zoh*_*han 5

编辑:

根据这个链接,这是一个错误.要获得解决方法,请在提供警告的代码行上方添加此注释:

//noinspection RestrictedApi
Run Code Online (Sandbox Code Playgroud)

老安:

我希望你不要导入错误的库.片段支持库支持运行Android3.0之前版本的设备的片段.

按照SO中的这篇文章

如果你使用的是android.app.Fragment,还记得使用Activity; 如果您使用的是android.support.v4.app.Fragment,请使用FragmentActivity.永远不要将android.support.v4.app.Fragment附加到android.app.Activity,因为这会导致抛出异常.

android.app.Fragment不同于android.support.v4.app.Fragment.

支持库一个是注释的@RestrictTo(LIBRARY_GROUP),而且@hide- 它不是一个公共API.