Android Studio - “无法解析符号”语法突出显示错误,尽管构建正常

时间:2015-09-09 10:26:16

标签: java android android-studio intellij-idea android-gradle

在我获得一台新计算机后,尝试从备份中恢复以前正在运行的Android Studio项目几天后,我有一个非常烦人的问题。

我有“无法解析符号”语法突出显示来自Android库的类的问题,例如我android.support.v7.appandroid.support.v4.app和Google Play服务作为依赖。 但是,该项目构建良好,我可以在手机上运行应用程序,没有任何问题。

我已经验证了SDK安装下是否存在这些jar文件 - 例如“\ SDK \演员\机器人\ m2repository \ COM \机器人\ SUPPORT \程序兼容性-V7 \ 23.0.1”。

我的问题与以下帖子中报道的问题非常相似:

  1. Android Studio says "cannot resolve symbol" but project compiles
  2. Android Studio cannot resolve symbol but code executes correctly
  3. Android Studio suddenly cannot resolve symbols
  4. 我已经尝试了各种stackoverflow讨论中提供的所有解决方案(即同步Gradle项目,无效缓存/重启,清理/重建,删除gradle生成的文件(.gradle,build,.idea目录等),降级到较低的API但是,没有方法是有用的。

    我使用Android Studio 1.3.2和API 23.所有构建工具,支持库等都是最新的(尝试使用v22。+和v23。+库)。

    如果您有任何其他建议,请提供帮助!

    从我的build.gradle中提取:

    apply plugin: 'com.android.application'
    android {
            compileSdkVersion 22
            buildToolsVersion '23.0.1'
    
    defaultConfig {
        applicationId "com.myapp.fun"
        minSdkVersion 22
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    }
    dependencies {
        compile fileTree(include: ['*.jar'], dir: 'libs')
        compile 'com.android.support:support-v4:22.+'
        compile 'com.android.support:appcompat-v7:22.+'
    }
    

    问题的屏幕截图也可以在下面找到。我认为Android Studio无法导入依赖库以进行语法突出显示,尽管编译器能够包含它们并成功构建。

    屏幕截图Syntax highlight and auto-complete issue

3 个答案:

答案 0 :(得分:3)

原因是我的项目路径中有一个&#39; <&#39; 符号。 显然,正如我现在所知,许多Java程序因此而失败! :-)

我刚刚重命名了路径,现在工作正常:-)

P.S。

感谢@ gabriele-mariotti提出的gradlew clean建议。事实上,这帮助我找到了真正的根本原因。由于gradlew

,我无法从终端运行RuntimeException
Could not determine wrapper version. at org.gradle.wrapper.GradleWrapperMain.wrapperVersion

但这帮助我了解了&#39;!&#39;路径上的符号,以及问题的根本原因。谢谢大家!

答案 1 :(得分:1)

你可以尝试:

  • 打开Module Settings,更改compile SDK version的值(您可以选择最低版本号)
  • 等待Android Studio完成刷新
  • 确保您已导入:
    import android.support.v4.app.FragmentActivity

  • 再次打开Module Settings,您应该在更改之前更改compile SDK version原始版本号。

  • 等待Android Studio完成刷新

答案 2 :(得分:0)

我在我们的项目中的两个库 com.koushikdutta.ion uk.co.senab.photoview 遇到了同样的问题,尽管我们在应用程序项目,但在库项目中被声明为依赖项。 症状是这样的:

  • 我可以完美地编译和运行应用程序
  • IDE顽固地拒绝找到这些库的类,并且无法导航至它们的源代码,使用这些类的所有类都关联了许多错误(红色条);该类用法以红色突出显示,没有代码建议,请命名。

我的解决方案如下:首先,关闭Android Studio。然后:

cd <your-project-folder>
mv .idea/ .idea-old/ 
mv <projectname>.iml <projectname>.iml-old

重新打开Android Studio,但选择“打开现有的Android Studio项目”选项。等待项目得到修复并享受完美的清洁。