web-dev-qa-db-ja.com

Kotlin Androidライブラリモジュールの拡張レイアウトを解決できません

buyersellerモジュールとcommonモジュールがあります。 buyerモジュールとsellerモジュールの両方で使用されるいくつかのレイアウトがcommonモジュールに配置されます。

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"

IDEではすべてが正常に機能します。

  1. インクルードタグを解決し、IDEのレイアウトプレビューを膨らませることで、レイアウトプレビューが正しく表示されます。
  2. 私のkotlinファイルもツールバー参照を適切に解決し、問題は表示されません。

しかし、アプリをビルドしようとすると、コンパイラエラーが発生します。

Unresolved reference: toolbar <-- Id of the toolbar inside layout_toolbar.xml

IDEが依存関係を適切に解決できるのに、なぜgradleをビルドできないのですか?私が間違っていることはありますか?

commonモジュールは他の2つのモジュールではimplementationとして追加されることに注意してください。しかし、私はapiで試しましたがこれも機能しません。

16
Chandra Sekhar

これは最初は良い質問のようです。現在のプロジェクトでも同じ問題を再現しています。

  1. 経由でライブラリモジュールを追加しました

    実装プロジェクト( ':mylibrary')

  2. プロジェクトにライブラリモジュールを追加しました。

enter image description here

  1. ライブラリモジュール、別名共通モジュールにレイアウト/ビューを作成しました。

enter image description here

  1. メインレイアウトに含まれています

enter image description here

  1. そして最後に、プログラムで変更することができます。

    importkotlinx.Android.synthetic.main.activity_home。* importkotlinx.Android.synthetic.main.item_library。*

enter image description here

構築環境に問題がある可能性があります。注:最新のビルドバージョンとAndroidおよびkotlinプラグインを使用しています。

問題をさらに明確にするために、ログを更新してください。

2
Killer