Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Kotlin Android Extension layouts from library module cannot be resolved

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,

  1. My layout preview shows properly by resolving the include tag and inflating in the IDE's layout preview.
  2. 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.

like image 833
Chandra Sekhar Avatar asked May 04 '18 16:05

Chandra Sekhar


1 Answers

This seems to a good question at first. I reproduce the same problem in my current project.

  1. I have added the library module via

    implementation project(':mylibrary')

  2. Added the library module in the project.

enter image description here

  1. Created a layout/view in the library module aka common module.

enter image description here

  1. Included in the main layout

enter image description here

  1. And finally, I am able to change it programmatically.

    import kotlinx.android.synthetic.main.activity_home.* import kotlinx.android.synthetic.main.item_library.*

enter image description here

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.

like image 160
Shubham Agarwal Avatar answered Sep 20 '22 02:09

Shubham Agarwal