在动态模块中使用样式的错误 - android app bundle

问题描述 投票:3回答:1

我在我的Android应用程序中使用应用程序包 - 动态模块。在项目中,我有一个主模块和一个子模块。在子模块的值 - > styles.xml中,我定义了自定义样式,以便为活动启用一些动画。

<style name="SampleActivityTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="buttonStyle">@style/CustomButtonStyle</item>
    <item name="android:windowContentTransitions">true</item>
    <item name="android:windowActivityTransitions">true</item>
    <item name="android:windowEnterTransition">@transition/activity_transition_note</item>
    <item name="android:windowExitTransition">@transition/activity_transition_note</item>
    <item name="android:windowSharedElementEnterTransition">@android:transition/move</item>
    <item name="android:windowSharedElementExitTransition">@android:transition/move</item>
</style>

在清单中,我使用主题属性的这个样式,

<activity
        android:name=".activity.SampleActivity"
        android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|locale"
        android:label=""
        android:screenOrientation="portrait"
        android:theme="@style/SampleActivityTheme">
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
        </intent-filter>
</activity>

但是当我构建项目时,我收到如下编译错误,

/Users/chathura/Branches/AppBundle/sample_module/build/intermediates/merged_manifests/debug/AndroidManifest.xml:778: error: resource style/SampleActivityTheme (aka lk.sample.mysampleapp:style/SampleActivityTheme) not found.

这个问题有什么理由?

任何建议表示赞赏。谢谢。

android android-app-bundle
1个回答
3
投票

Android Gradle插件目前不支持从清单中的动态功能引用资源。

其中一个原因是所有动态功能的清单都合并到基本模块的清单中,而基本模块不应该依赖于动态功能。

如果您在基础中定义样式,那应该修复它。

资源:

来自https://developer.android.com/studio/projects/dynamic-delivery

应用程序基本模块的清单类似于任何其他应用程序模块的清单。请注意,当Google Play生成应用的基本APK时,它会将所有模块的清单合并到基本APK的清单中。

© www.soinside.com 2019 - 2024. All rights reserved.