gpt4 book ai didi

resources - Android Gradle 从依赖模块引用样式

转载 作者:行者123 更新时间:2023-12-05 07:58:36 27 4
gpt4 key购买 nike

所以我在 Android Studio (0.6.1) 中有一个 Android 项目。有 2 个模块 ABA 是我的主模块,它依赖于 B,它包含各种资源(可绘制对象、字符串、样式),因此功能类似于库(尽管它不是库-项目)。我将 B 添加为 git-subtree,将其包含在我的 settings.gradle 中并且构建工作正常。

现在有一个问题:我想在A中引用B的资源。对于可绘制对象,我已经找到了 here我可以在 A 中创建将被 B 覆盖的虚拟资源。但不幸的是,不适用于在 B 中定义的样式。我在 A 中的 styles.xml 中创建的虚拟对象不会被覆盖。

我的目标是在 B 中定义多种样式,例如:

<style name="ButtonStyle1" parent="android:Widget.Button">
<item name="android:layout_width">wrap_content</item>
<item name="android:minWidth">200dp</item>
<item name="android:background">@drawable/buttonorange</item>
<item name="android:textColor">@android:color/black</item>
</style>
<style name="ButtonStyle2" parent="android:Widget.Button">
<item name="android:layout_width">wrap_content</item>
<item name="android:minWidth">200dp</item>
<item name="android:background">@drawable/buttonorange</item>
<item name="android:textColor">@android:color/black</item>
</style>

然后回到 A 我希望有机会选择应用 ButtonStyle1 还是 ButtonStyle,例如:

<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
<item name="android:buttonStyle">@style/ButtonStyle1</item>
</style>

<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
<item name="android:buttonStyle">@style/ButtonStyle2</item>
</style>

但是当我这样做的时候,我总是得到错误:(5, 42) 找不到与给定名称匹配的资源(在“android:buttonStyle”中,值为“@style/ButtonStyle1”)。

总而言之,我猜我的 gradle 配置本身是正确的,因为重写可绘制对象已经可以正常工作了。 那么我哪里做错了 - 如何在 A 中引用 B 中定义的样式?

settings.gradle

include ':app', ':uiframework:uiframework'

来自 A 的 build.gradle

apply plugin: 'android'

android {
compileSdkVersion 19
buildToolsVersion '19.1.0'
defaultConfig {
applicationId 'com.example.uiframeworkexample'
minSdkVersion 14
targetSdkVersion 19
versionCode 1
versionName '1.0'
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
productFlavors {
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':uiframework:uiframework')
}

最佳答案

确保在 build.gradle 文件中为 B(库)项目应用正确的插件

apply plugin: 'com.android.library'

关于resources - Android Gradle 从依赖模块引用样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24403535/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com