ไม่สามารถรับรูทวิวจากการผูกข้อมูลหลังจากเปิดใช้งานปลั๊กอิน Safe-args


15

ฉันกำลังทำงานกับแอพ Android โดยใช้ dataBinding และกำลังพยายามเพิ่มปลั๊กอิน safe-args แต่หลังจากเปิดใช้งานปลั๊กอินแล้วฉันจะไม่สามารถรับมุมมองรูทผ่านทางผูกพันได้อีก - Android Studio ให้ข้อผิดพลาด:

Unresolved Reference
None of the following candidates is applicable because of a receiver type mismatch:
* internal val File.root: File defined in kotlin.io

ฉันจะทำให้ databinding และ safe-args เล่นด้วยกันได้อย่างไร

โปรดทราบว่าในขณะที่ข้อมูลโค้ดอยู่ใน Kotlin ฉันจะทำตามคำตอบของ Java อย่างมีความสุข ไม่สะดวกใน Java แต่ฉันสามารถอ่านและแปลได้อย่างง่ายดาย

ฉันไม่สามารถหาคนอื่นที่มีปัญหาเดียวกันโดย Googling ข้อความแสดงข้อผิดพลาดและ "safe args" ฉันพยายามครั้งแรกกับ classpath ที่ระบุไว้ในเอกสาร Android ที่นี่: https://developer.android.com/guide/navigation/navigation-pass-data

classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.1.0"

และจากนั้นก็พบว่ามีการสอนที่แนะนำให้ฉันใช้:

classpath "android.arch.navigation:navigation-safe-args-gradle-plugin:1.0.0-alpha07"

ทั้งคู่มีปัญหาเดียวกัน: binding.root ให้ข้อผิดพลาดเมื่อเปิดใช้งานปลั๊กอิน

นี่คือ onCreateView ของฉัน () สำหรับส่วนของฉัน บรรทัดส่งคืนนั้นทำงานอย่างถูกต้องเมื่อไม่ได้เปิดใช้งาน Safe-args และไม่ทำงานเมื่อเปิดใช้งาน

   override fun onCreateView(
    inflater: LayoutInflater, container: ViewGroup?,
    savedInstanceState: Bundle?
): View? {
    binding = DataBindingUtil.inflate(inflater, R.layout.fragment_encoder, container, false)

    return binding.root
}

ความช่วยเหลือใด ๆ ในการแก้หรือเข้าใจปัญหานี้เป็นที่นิยมมากที่สุด!

คำตอบ:


11

ฉันมีปัญหาเดียวกันมันมีสายสำหรับฉัน แต่เพียงแค่เปลี่ยนชื่อเค้าโครงจะทำงานอีกครั้งลองทำดู: D


2
นั่นทำให้เคล็ดลับแปลกประหลาดพอขอบคุณ สำหรับคนอื่นที่มาที่นี่ด้วยปัญหาเดียวกันสิ่งที่ฉันต้องทำคือ refactor> เปลี่ยนชื่อไฟล์เลย์เอาต์ xml ที่เชื่อมโยงกับคลาสที่ไม่รู้จักการโยง คุณจะต้องเปลี่ยนชื่อประเภทคลาสที่สร้างขึ้นอัตโนมัติสำหรับการเชื่อมโยงตามด้วย เมื่อฉันทำอย่างนั้นทุกอย่างทำงานได้อย่างถูกต้องและฉันสามารถเปลี่ยนชื่อกลับเป็นชื่อเดิมได้อีกครั้ง ไม่แน่ใจว่าสิ่งนี้จะช่วยสร้างโครงการได้อย่างไร ..
ฮันนาห์เอส.

นอกจากนี้หากคุณอยู่ที่นี่เนื่องจากปัญหาด้านความปลอดภัยคุณอาจต้องการใช้ ViewModel และ LiveData ที่ใช้ร่วมกันแทน นั่นคือสิ่งที่ฉันใช้ตอนนี้เพราะฉันจะต้องดำเนินต่อไปเมื่อฉันติดอยู่บน args ปลอดภัยและฉันมีความสุขมาก
ฮันนาห์เอส

24

ฉันมีปัญหาเดียวกันและในที่สุดฉันก็พยายาม

ไฟล์ -> แคช / รีสตาร์ทไม่ถูกต้อง

มันใช้งานได้สำหรับฉัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.