将支持库更新到27.0.0后,我的片段中有多个错误
将支持库从v-26.1.0更新到v-27.0.0之后将碎片中的多个错误更新。
这里是一些这些错误的列表:
错误:智能转换为“捆绑”是不可能的,因为“参数”是一个可以改变的可变属性。
错误:’onCreateView’覆盖任何东西
错误:’onViewCreated’覆盖任何东西
错误:types不匹配:推断types是View? 但是View是预期的
错误:types不匹配:推断types是上下文吗? 但上下文是预期的
错误:types不匹配:推断types是FragmentActivity? 但上下文是预期的
错误:types不匹配:推断types是FragmentActivity? 但上下文是预期的
从android工作室的模板为空片段。
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) if (arguments != null) { mParam1 = arguments.getString(ARG_PARAM1) mParam2 = arguments.getString(ARG_PARAM2) } } override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? { return inflater!!.inflate(R.layout.fragment_blank, container, false) } override fun onViewCreated(view: View?, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) }
所有这些错误的根本原因是在支持库v-27.0.0 @Nullable
和@NonNull
注释已被添加。
并且因为kotlin语言知道可空性,并且对于Nullable
和NonNull
有不同的types,与Java不同。
如果没有这些注释,编译器无法区分它们,Android工作室正在尽力推断正确的types。
TL; DR:改变types以正确反映可空性状态。
错误:智能转换为“捆绑”是不可能的,因为“参数”是一个可以改变的可变属性。
更改arguments.getString(ARG_NAME)
==> arguments?.getString(ARG_NAME) ?: ""
错误:’onCreateView’覆盖任何东西
CHANE:
override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View?
==>
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View?
错误:’onViewCreated’覆盖任何东西
更改:
override fun onViewCreated(view: View?, savedInstanceState: Bundle?)
==>
override fun onViewCreated(view: View, savedInstanceState: Bundle?)
错误:types不匹配:推断types是上下文吗? 但上下文是预期的
如果上下文作为parameter passing给方法,只需使用快速修复将getContext()
替换为getContext()?.let{}
这同样适用于kotlin短版本context
。
else if用于调用某个方法getContext().someMethod()
用getContext()?.someMethod()
context?.someMethod()
也适用于kotlin短版本的context?.someMethod()
。
错误:types不匹配:推断types是FragmentActivity? 但上下文是预期的
使用以前的错误的修复。
- java.lang.NoClassDefFoundError $$ intern $ forEach $ lambda $ 1在Kotlin中
- Android的AltBeacon测距没有find任何东西
- 如何阻止导航栏/状态栏android java
- 匕首2构造函数注入与命名参数在kotlin
- 如何在内存中运行编译kotlin文件的测试并检查结果?
- Android发布商API – 获取额外的数据(检测哪个用户购买)
- Android库不能编译kotlin
- 为什么在OnCreate()中设置ViewTreeObserver> OnScrollChangedListener不会在Android 2.x上调用?
- Android Studio 3.1 Canary 3上的Gradle同步错误