我遇到了以下问题,我连接了一个库,其中有一些具有特定 ID 的视图。并且在主项目中,当引用这个特定的视图时,不要为你的视图分配相同的 id。之后,kotlinx我没有在课堂上引用我的项目 id,而是找到了连接库的 id。
如何避免这种情况?到目前为止,作为一个选项,这是将 id 重命名为 main 或 library,但由于有时不会显式弹出,我想以某种不同的方式解决它。也许有人已经遇到过类似的事情。
更新:
我想注意导入不会改变,例如:
import kotlinx.android.synthetic.main.dialog_immediate_categorization.*
标记本身的位置:
<com.mandarine.android.common.views.TitleSwitchView
android:id="@+id/switchView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:titleText="@string/v2_mobile_categories_assign_all_enable" />
如您所见,在哪里:com.mandarine.android.common在我的情况下,这是连接库的一个元素,其中TitleSwitchView选择了包含TextView和SwitchView其中为类指定 id的标记switchView。并且已经在我的课堂上,它不是指switchView类型,而是指类型TitleSwitchView的 id 。switchViewSwitchView
隐藏图书馆资源。关闭文档中的好答案 https://developer.android.com/studio/projects/android-library#PrivateResources
哇,就是这个问题!它涉及整个应用程序代码中资源可用性这一久为人知的话题,因此,名称冲突的危险。KotlinX 中的对象搜索机制涉及整个元素树的范围。你可以通过放弃 KotlinX 来解决这个问题。最主要的是不要求助于对对象使用更复杂名称的解决方案。问题的作者做得很好!