I have my buyer
, seller
module and a common
module. Few layouts which are used in both buyer
and seller
module are placed in common
module.
common -> layout_toolbar.xml
buyer -> activity_sell.xml ->
<LinearLayout>
<include layout="@layout/layout_toolbar" /> <!-- layout_toolbar.xml is from common module -->
</LinearLayout>
seller -> activity_buy.xml ->
<RelativeLayout>
<include layout="@layout/layout_toolbar" /> <!-- layout_toolbar.xml is from common module -->
</RelativeLayout>
buyer -> BuyActivity.kt
toolbar.title = "Buy"
seller -> SellActivity.kt
toolbar.title = "Sell"
Everything works fine in IDE,
- My layout preview shows properly by resolving the include tag and inflating in the IDE's layout preview.
- My kotlin files also properly resolves the toolbar reference and doesn't show any problem.
But whenever I try to build the app, it gives me the compiler error:
Unresolved reference: toolbar <-- Id of the toolbar inside layout_toolbar.xml
If IDE can resolve the dependencies properly, why can't the gradle build? Is there anything I am doing wrong?
Please note that common
module is added as implementation
in other two modules. But I have tried with api
which doesn't work too.
This seems to a good question at first. I reproduce the same problem in my current project.
I have added the library module via
implementation project(':mylibrary')
Added the library module in the project.
- Created a layout/view in the library module aka common module.
- Included in the main layout
And finally, I am able to change it programmatically.
import kotlinx.android.synthetic.main.activity_home.* import kotlinx.android.synthetic.main.item_library.*
There might be some problem with the built environment. Note: I am using latest build version and android and kotlin plugins.
Do update your logs for further clarification about your problem.
来源:https://stackoverflow.com/questions/50179177/kotlin-android-extension-layouts-from-library-module-cannot-be-resolved