Android Studio 3.1无法解析符号(主题,小部件,attr等)

时间:2018-03-27 22:18:55

标签: android android-studio intellij-idea android-resources android-studio-3.1

我今天将Android Studio升级到3.1,现在Android Studio说它无法解析大部分资源的符号(例如ThemeOverlaystyles.xml中的?attr/actionBarSize。到目前为止,这似乎并没有妨碍我在模拟器中构建或运行,但这些错误让我感到紧张。

还有其他人遇到过此问题吗?我怎样才能解决它?我尝试过同步gradle和清理我的项目,但它似乎没有任何帮助。

有什么想法吗?

我正在使用带有Gradle版本4.4和Gradle Plugin 3.1.0的Android Studio 3.1

修改 此问题会影响到Android Studio 3.1.1,3.1.2,3.1.3,3.1.4以及Gradle Plugin到3.1.1,3.1.2,3.1.3和3.1.4的更新。但是,下面的答案仍然有效。

16 个答案:

答案 0 :(得分:164)

关闭项目并再次导入。今天为我工作。

import project

答案 1 :(得分:19)

关闭并重新打开项目作为现有的Android Studio项目

答案 2 :(得分:16)

支持库不同步。

发生此错误是因为支持库与您的项目不同步。要使其恢复同步,可以执行以下步骤:

  1. 打开应用模块的 build.gradle 文件
  2. 注释掉支持库的@forelse($collection as $item) some text @section('section_name') // link to stylesheet @endsection @empty // something went wrong @endforelse 行。对我来说看起来像这样:

    implementation
  3. 使用gradle同步项目。您现在将出现一些错误。不用担心。

  4. 取消注释您先前注释掉的//implementation 'com.android.support:appcompat-v7:27.1.1' //implementation 'com.android.support:recyclerview-v7:27.1.1' //implementation 'com.android.support.constraint:constraint-la 行。

    implementation
  5. 再次使用gradle同步项目。

“无法解析符号”错误现在应该消失了。在不同的项目上,这已经为我工作了好几次。

注意

  • 如果您的项目有多个模块,那么您需要立即按照上述说明操作所有模块。

答案 3 :(得分:9)

升级Android Studio后,您可以使缓存无效并重新启动。

File> Invalidate Caches / Restart…

introducir la descripción de la imagen aquí

答案 4 :(得分:2)

出于某种原因,在26个库中找不到这些属性。要增加这些库,您还必须将compileSdk增加到27。 您很可能还需要下载sdk 27​​

简短版本,继续发布应用程序`graddle``

android {
    compileSdkVersion 27
    //...
}

dependencies {
    implementation 'com.android.support:appcompat-v7:27.1.0'
    implementation 'com.android.support:design:27.1.0'
    //...
}

长版,请检查以下所有文件:

gradle-wrapper.properties

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip

build.gradle(Project)

buildscript {

    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.0'


        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

最后是build.gradle(app)

apply plugin: 'com.android.application'

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "cl.cutiko.testingupdate"
        minSdkVersion 21
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:27.1.0'
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    implementation 'com.android.support:design:27.1.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.1'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}

答案 5 :(得分:2)

关闭一个项目,然后打开现有的项目会产生奇迹!

答案 6 :(得分:2)

再次导入项目对我来说不起作用。

我的解决方法是

  1. 删除项目中的 .idea 文件夹。
  2. 然后通过 File> Close Project
  3. 关闭项目
  4. 然后通过 File> New > Import Project OR 从欢迎屏幕 Import Project (Gradle, Eclipse ADT, etc.) 中导入项目。

查看屏幕截图以获取更多信息

1st solution

2nd solution

答案 7 :(得分:1)

您可以尝试关闭项目并退出Android Studio(只关闭并重新导入它并没有为我做这件事)。启动Android Studio并再次打开该项目。这对我有用!

答案 8 :(得分:1)

我关闭并重新打开了与现有Android Studio项目相同的项目(没有导入它),它正常工作了!感谢Andrew Glukhoff的评论。

答案 9 :(得分:0)

implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
implementation 'com.android.support:design:26.1.0'

使用build.gradle(project)中的上述内容更新您的依赖项

并将以下代码放入build.gradle(Module:app)

classpath 'com.android.tools.build:gradle:3.1.1'
classpath 'io.realm:realm-gradle-plugin:3.7.1'
classpath 'com.google.gms:google-services:3.1.0'

答案 10 :(得分:0)

对我来说,相同的症状/错误是由于将新图像拖放到Android Studio不喜欢的名称(例如名称中带有数字或大写字母)的“ drawable-xxhdpi”文件夹中引起的。

没有给出有用的错误消息,只是“无法解析符号R”消息。

即使在同步应用程序以及清理和重建项目之后,仍然存在无法识别“ R”且没有其他错误的问题。

按照其他答案中的建议关闭和导入项目是行不通的,考虑到根本问题,这是有道理的。

但是,即使过去似乎对其他人无效,从SO上的其他问题和答案来看,从drawable文件夹中删除新图像还是行得通的。

同样,一种更好的解决方案显然是重命名图像以删除Android在资源名称中不喜欢的任何字符,然后执行干净和/或重建项目。

答案 11 :(得分:0)

问题1

我的问题与我如何使用Android插件的alpha / beta版本

有关

File > Project Structure > Project

检查您的Android Plugin Version

我使用的是3.3.0-beta,但是在另一个项目3.1.0-alpha

将其更改为3.2.0似乎可以解决我的问题,也不要忘记在build.gradle(Project)中也进行更改

问题2

我的.xml文件之一出错。我错过了@string资源。请检查您所有的xml文件,并确保它们都是正确的(打开xml文件会激活Android Studio linting,滚动浏览该文件,如果出现问题,它应该显示为红色)

问题3

build.gradle中,我导入了不同版本的android支持库。例如

implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:support-v4:27.1.0'

请确保它们是相同版本。并确保Android Studio在您的gradle依赖项内没有任何抱怨。可能您的某些依赖项也导入了不同的android支持库版本。

在#1,#2和#3之后采取的步骤

清理项目Build > Clean Project

使缓存无效并重新启动File > Invalidate Caches / Restart

重启后,等待gradle构建完成,然后瞧瞧!

答案 12 :(得分:0)

我将gradle版本更新为4.10.1,并“修复并重新导入”。 .idea之前没有库文件夹。然后它起作用了

答案 13 :(得分:0)

我更新到com.android.tools.build:gradle 3.3.1gradle-4.10.1时出现类似的错误

我尝试了以下方法,但是没有用:

  1. Clean Project-Rebuild Project
  2. Invalidate Caches / Restart
  3. 检查.xml错误(我没有发现有关xml的任何错误)
  4. 修改.iml文件

我通过修改 com.android.tools.build:gradle 3.2.1 Restart my mac 来解决此错误,我不知道哪个人可以解决它,但它确实有效为了我 。

答案 14 :(得分:-2)

我如何解决的。:
how to solved

我将Android Studio更新至版本3.2,并通过两个步骤解决了该问题。

  1. 已从Android Studio欢迎页面中删除。

  2. 再次打开项目。

为我工作。

答案 15 :(得分:-4)

示例

  

setContentView( R .layout.activity_login_ativity);

  1. 将光标置于R
  2. 点击Alt + Enter
  3. 选择进口类别R

为我工作:)