升级到gradle 4.4和gradle构建工具版本3.1.2后,在文件中获得红线

时间:2018-05-12 15:56:38

标签: java android android-studio gradle

Android工作室要求我将gradle版本更新为4.4并将构建工具版本更新为3.1.2。 更新后,整个android工作室在文件中显示红线,当我将光标悬停在这些错误上时,它表示“无法解析符号”但编译没有错误,即构建成功。Click here to see red lines in java files

以下是gradle app和项目文件。

//Build.gradle(project)
//Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        maven {
            url 'https://maven.fabric.io/public'
        }

        jcenter()
        maven {

            url 'https://maven.google.com/'
            name 'Google'
        }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.2'
        classpath 'com.google.gms:google-services:3.2.0'
        classpath 'io.fabric.tools:gradle:1.25.1'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        maven {
            url 'https://maven.google.com/'
        }
        jcenter()
    }
}

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

//build.gradle(module:app)
apply plugin: 'com.android.application'

android {
    compileSdkVersion 27
    buildToolsVersion '27.0.3'
    defaultConfig {
        applicationId "com.developers.paras.droidwatch"
        minSdkVersion 19
        targetSdkVersion 27
        versionCode 9
        versionName "9.0"
        multiDexEnabled true
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled true
            shrinkResources true
            android.defaultConfig.vectorDrawables.useSupportLibrary = true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:27.1.1'
    compile 'com.android.support:customtabs:27.1.1'
    compile 'com.android.support.constraint:constraint-layout:1.1.0'
    compile 'com.android.support:design:27.1.1'
    compile 'com.android.support:support-v4:27.1.1'
    compile 'com.google.android.gms:play-services-ads:15.0.1'
    compile 'com.google.firebase:firebase-core:15.0.2'
    compile 'com.crashlytics.sdk.android:crashlytics:2.9.2'
    testCompile 'junit:junit:4.12'
}
apply plugin: 'com.google.gms.google-services'
apply plugin: 'io.fabric'

我已经尝试过的事情。

  1. 清洁并重建。
  2. 使缓存无效并重新启动。
  3. 将gradle版本更新为4.9。
  4. 为项目设置本地gradle。
  5. 在此处查看我的gradle日志https://drive.google.com/open?id=18bFZdkWX4AFPfpmfjvN1t80WpVRpiHWs

    在这些错误发生后,即使是发布版本也会生成。 Release apk generated

    更新:最近在重新安装Studio之后,我创建了一个新项目,一切正常。 “无法解析符号”没有错误。

2 个答案:

答案 0 :(得分:0)

这不是世界上最优雅的解决方案,但删除和重新克隆项目是解决这个问题的最快方法。

如果您不使用git ......那么。现在是开始的好时机。

我尝试删除并重新同步所有各种配置文件,但它没有做任何事情。

答案 1 :(得分:0)

我遇到了类似的情况:将Gradle升级到4.4,然后打开了一个用Gradle 3.1.2构建的旧项目。

Android Studio注意到它并慷慨地提供:

  

要充分利用所有最新功能(例如即时运行),改进和安全修复程序,我们强烈建议您将Android Gradle插件更新至3.1.2版并将Gradle更新至4.4版。

当我选择更新时,我得到了红色下划线,显示MainActivity.java中的任何地方都有错误,但项目正在构建并完美运行。

我还尝试重建并使缓存无效;重启,但没有成功。

对我来说,编辑 build.gradle(module:app)文件有帮助。 当我将compileSdkVersiontargetSdkVersion修改为最新版本(27)并将依赖项下的行implementation 'com.android.support:appcompat-v7:2x.x.x'的版本号更改为最新版本,然后重新生成时,红线突然从MainActivity中消失。 java,一切都变得正常了。

也许不是摆弄sdk版本号在这里很重要,而是强制进行适当的gradle重新同步。

另请注意,自Gradle 3.4起,在 build.gradle 文件中的依赖项下,一些配置字发生了变化:compiletestCompileandroidTestCompile,{ {1}},testApi已过时,应替换为androidTestApiimplementation

您可以在此处找到有关此问题的更多信息:https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration?utm_source=android-studio#new_configurations并正确解释在此处选择apiimplementation之间的区别:https://medium.com/mindorks/implementation-vs-api-in-gradle-3-0-494c817a6fa