簡體   English   中英

將onCreateAnimation FATAL EXCEPTION重寫為java.lang.IllegalStateException:不能為null

[英]override onCreateAnimation FATAL EXCEPTION to java.lang.IllegalStateException : must not be null

我已經使用默認實現覆蓋了Fragment類的onCreateAnimation方法,這導致FATAL EXCEPTION。 為什么?

java.lang.RuntimeException:無法啟動活動ComponentInfo {com.developer.pocviewmodel / com.developer.pocviewmodel.MainActivity}:java.lang.IllegalStateException:super.onCreateAnimation(傳遞,輸入,nextAnim)不能為null

class MainFragment : Fragment() {

    companion object {
        fun newInstance() = MainFragment()
    }

    private lateinit var viewModel: MainViewModel

    override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View {
        return inflater.inflate(R.layout.main_fragment, container, false)
    }

    override fun onActivityCreated(savedInstanceState: Bundle?) {
        super.onActivityCreated(savedInstanceState)
        viewModel = ViewModelProviders.of(this).get(MainViewModel::class.java)
        // TODO: Use the ViewModel
    }

     override fun onCreateAnimation(transit: Int, enter: Boolean, nextAnim: Int): Animation {
        return super.onCreateAnimation(transit, enter, nextAnim)
    }

}

java.lang.IllegalStateException : must not be null當@NotNull參數或變量為null或@NotNull函數返回null時,將引發java.lang.IllegalStateException : must not be null的異常。 默認情況下, onCreateAnimation返回null。

如果您對類進​​行反編譯,則會看到該函數的Java版本:

@NotNull
public Animation onCreateAnimation(int transit, boolean enter, int nextAnim) {
   Animation var10000 = super.onCreateAnimation(transit, enter, nextAnim);
   Intrinsics.checkExpressionValueIsNotNull(var10000, "super.onCreateAnimation(transit, enter, nextAnim)");
   return var10000;
}

onCreateAnimation返回null並因此引發異常,因為返回值被標記為@NotNull。 重寫方法並返回非null,還是將返回類型更改為Animation? 但是由於您不對其進行任何操作,因此可以將其完全刪除。 您不必重寫它,它不是抽象的。

作為記錄,如果使返回類型可為空,則這是反編譯的Java代碼:

@Nullable
public Animation onCreateAnimation(int transit, boolean enter, int nextAnim) {
   return super.onCreateAnimation(transit, enter, nextAnim);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM