无法在支持库版本更改时解析符号

时间:2015-11-13 21:26:09

标签: android android-studio android-support-library

我希望有人可以对这个问题有所了解。我正在尝试更改支持库版本:

compile 'com.android.support:support-annotations:23.1.0'
compile 'com.android.support:support-v4:23.1.0'
compile 'com.android.support:support-v13:23.1.0'
compile 'com.android.support:appcompat-v7:23.1.0'
compile 'com.android.support:design:23.1.0'
compile 'com.android.support:cardview-v7:23.1.0'
compile 'com.android.support:recyclerview-v7:23.1.0'

compile 'com.android.support:support-annotations:23.1.1'
compile 'com.android.support:support-v4:23.1.1'
compile 'com.android.support:support-v13:23.1.1'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:design:23.1.1'
compile 'com.android.support:cardview-v7:23.1.1'
compile 'com.android.support:recyclerview-v7:23.1.1'

通常看起来像一个简单的小升级已经让我整整一天。基本上在更新gradle.build文件时,我同步 - >干净,并且在IDE上出现了一堆无法解决符号错误,用于支持库中的类。

更令人感兴趣的是,如果我尝试通过adb在手机上运行代码,尽管AS显示为"无法解析符号",它在我的手机上运行得非常好

我尝试过的事情之一:

  1. 清洁/重建
  2. 无效缓存/重启
  3. 删除所有.iml文件和.idea文件夹
  4. 重新安装Android Studio,重新导入项目
  5. 重新启动
  6. 进一步深入构建目录,它们在两者中都是相似的

    建立\中间体\分解-AAR \ com.android.support \程序兼容性-V7 \ 23.1.0 \罐子\ classes.jar

    建立\中间体\分解-AAR \ com.android.support \程序兼容性-V7 \ 23.1.1 \罐子\ classes.jar

    分别生成。与AS不同的是,对于之前的版本," classes.jar"在AS中可以是opened,与新版本一样,它们在AS中cannot be opened

    我觉得我已经把所有可用的选项都耗尽了,所以如果有人能说明如何解决这个问题,我会非常感激。

    我的完整gradle.build文件:

    apply plugin: 'com.android.application'
    
    android {
        compileSdkVersion 23
        buildToolsVersion "23.0.2"
    
        defaultConfig {
            applicationId "com.XXX"
            minSdkVersion 15
            targetSdkVersion 23
            versionCode 1
            versionName "1.1.1"
            multiDexEnabled true
        }
        buildTypes {
            release {
                minifyEnabled true
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
    
    }
    
    
    
    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        compile project(path: ':XXX', configuration: 'android-endpoints')
        testCompile 'junit:junit:4.12'
        compile 'com.google.code.gson:gson:2.4'
        compile 'org.apache.commons:commons-lang3:3.4'
        compile 'com.balysv:material-ripple:1.0.2'
        compile 'net.sf.flexjson:flexjson:3.3'
        compile 'com.jakewharton:butterknife:7.0.1'
        compile 'com.google.android.gms:play-services-ads:8.1.0'
        compile 'com.google.android.gms:play-services-identity:8.1.0'
        compile 'com.google.android.gms:play-services-gcm:8.1.0'
        compile 'com.android.support:support-annotations:23.1.0'
        compile 'com.android.support:support-v4:23.1.0'
        compile 'com.android.support:support-v13:23.1.0'
        compile 'com.android.support:appcompat-v7:23.1.0'
        compile 'com.android.support:design:23.1.0'
        compile 'com.android.support:cardview-v7:23.1.0'
        compile 'com.android.support:recyclerview-v7:23.1.0'
    }
    

5 个答案:

答案 0 :(得分:2)

我终于解决了:

首先,我更新了gradle插件。

dependencies {
    classpath 'com.android.tools.build:gradle:1.5.0'
}

然后只需构建 - >清理项目,一切都恢复正常。

答案 1 :(得分:1)

我想我已经解决了这个问题。转到项目中的主模块,它通常具有名称 app

然后转到> 打开模块设置>在属性中将构建工具版本更改为 23.0.1

然后确保打开 build.gradle 文件,并更改compileSDKVersion& buildToolsVersion分别为23和23.0.1。

android {
compileSdkVersion 23
buildToolsVersion '23.0.1'

defaultConfig {
    applicationId "id.web.twoh"
    minSdkVersion 15
    targetSdkVersion 21
    versionCode 1
    versionName "1.0"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
  }
}

您还应该确保项目中的所有模块都具有以 23 开头的compileSdkVersion和buildToolsVersion,因为您将使用支持库的第23版。

答案 2 :(得分:0)

我知道现在已经很晚了,但我遇到了类似的问题。事实证明,问题是由数据绑定库引起的。我在生成的绑定类中的无效引用中引用的代码中出错。我的布局文件使用id webview定义了一个webview,但在代码中我将其引用为webView。纠正错误并进行清理并完全重建后,Android Studio开始识别所有软件包并查看支持库。

答案 3 :(得分:-2)

我有完全相同的问题,为了解决这个问题,我刚刚将BuildDebug配置微调器更改为 MainActivity

SPINNER

答案 4 :(得分:-3)

我通过在ToolBar中将Run / Debug Configuration微调器更改为MainActivity(而不是app [androidDepedencies])解决了我的问题......