使用 Material Components 和 androidX 编译 Android 应用程序时出错
Posted
技术标签:
【中文标题】使用 Material Components 和 androidX 编译 Android 应用程序时出错【英文标题】:Error compiling Android app with Material Components and androidX 【发布时间】:2019-04-10 16:17:34 【问题描述】:android 应用突然拒绝构建,返回此错误:
Android 资源链接失败 错误:资源样式/Theme.MaterialComponents.Light.NoActionBar(又名 it.duemilanet.icircle:style/Theme.MaterialComponents.Light.NoActionBar) 没找到。
D:\GitLab\iCircleAndroidRMA\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:1440: 错误:样式属性'attr/colorSecondary(又名 it.duemilanet.icircle:attr/colorSecondary)' 未找到。 错误:资源样式/Widget.Design.BottomSheet.Modal(又名 it.duemilanet.icircle:style/Widget.Design.BottomSheet.Modal)不是 成立。 错误:资源样式/Theme.Design.Light.BottomSheetDialog(又名 it.duemilanet.icircle:style/Theme.Design.Light.BottomSheetDialog)不是 成立。 D:\GitLab\iCircleAndroidRMA\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:3296: 错误:样式属性'attr/bottomSheetStyle(又名 it.duemilanet.icircle:attr/bottomSheetStyle)' 未找到。 错误:链接引用失败。
之前编译还不错,几周前我切换到 androidX 和 material components 主题并启用 jetifier 没有问题
build.gradle:
buildscript
repositories
google()
jcenter()
maven
url 'https://maven.fabric.io/public'
dependencies
classpath 'com.android.tools.build:gradle:3.3.0-alpha09'
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2'
classpath 'com.google.gms:google-services:4.0.2'
classpath 'io.fabric.tools:gradle:1.25.4'
allprojects
repositories
google()
jcenter()
maven
url 'https://maven.google.com/'
task clean(type: Delete)
delete rootProject.buildDir
app build.gradle:
apply plugin: 'com.android.application'
apply plugin: 'org.greenrobot.greendao'
apply plugin: 'io.fabric'
android
compileSdkVersion 28
defaultConfig
applicationId "it.duemilanet.icircle"
minSdkVersion 23
targetSdkVersion 28
versionCode 3334
versionName "3.3.3.4"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
buildTypes
release
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
dataBinding
enabled true
greendao
schemaVersion 1
dependencies
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.google.code.gson:gson:2.8.5'
implementation 'com.squareup.retrofit2:retrofit:2.4.0'
implementation 'com.squareup.retrofit2:converter-scalars:2.4.0'
implementation 'com.squareup.retrofit2:converter-gson:2.4.0'
implementation 'com.squareup.okhttp3:logging-interceptor:3.4.1'
implementation 'com.squareup.okhttp3:okhttp:3.10.0'
implementation 'com.squareup.okhttp3:okhttp-urlconnection:3.6.0'
implementation 'io.sentry:sentry-android:1.7.5'
implementation 'org.simpleframework:simple-xml:2.7.1'
implementation 'org.greenrobot:greendao:3.2.2'
implementation 'com.synnapps:carouselview:0.1.5'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'com.bskim:maxheightscrollview:1.0.0@aar'
implementation 'com.google.firebase:firebase-core:16.0.5'
implementation 'com.google.firebase:firebase-messaging:17.3.4'
implementation 'com.crashlytics.sdk.android:crashlytics:2.9.5'
implementation 'com.pspdfkit:pspdfkit:4.8.1'
implementation 'com.google.android.material:material:1.0.0'
implementation 'androidx.recyclerview:recyclerview:1.0.0'
implementation 'org.apache.commons:commons-compress:1.18'
implementation 'androidx.databinding:databinding-runtime:3.3.0-alpha12'
implementation 'com.jakewharton:butterknife:9.0.0-rc1'
annotationProcessor 'com.jakewharton:butterknife-compiler:9.0.0-rc1'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0'
repositories
mavenCentral()
maven
url "https://oss.sonatype.org/content/repositories/snapshots"
maven
url 'https://customers.pspdfkit.com/maven/'
credentials
username 'pspdfkit'
password 'PASSWORD'
apply plugin: 'com.google.gms.google-services'
我尝试禁用 Instant Run 并恢复到之前版本的材料库,但无法修复错误。
【问题讨论】:
【参考方案1】:材料设计文档中引用了几个组件,这些组件尚未在 Android 材料设计库的稳定版本中。尝试改用 alpha 版本。
将以下内容添加到您的build.gradle
:
dependencies
...
implementation 'com.google.android.material:material:1.2.0-alpha02'
【讨论】:
【参考方案2】:从Android Studio
的File
菜单尝试Invalidate Cashes / Restart
。
【讨论】:
@Bek,您是否试图在所有问题上都写下这个以试图获得更多代表?为什么这样可以解决问题?这是否为您解决了问题?以上是关于使用 Material Components 和 androidX 编译 Android 应用程序时出错的主要内容,如果未能解决你的问题,请参考以下文章
如何自定义 Material-UI 和 styled-components 基于 props 的样式
在反应中使用 Material Icon 和 Styled-Components
使用 Material Components 和 androidX 编译 Android 应用程序时出错
无法使用 Webpack 2 导入 material-components-web