Android Studio: 无法解析导入 (android.support.*)

3

AndroidStudio又让我抓狂了... 我从我的Win7 PC上获取了一个一年前的AS项目(它当时运行得很好),现在想在我的Win10工作站上添加新内容。然而,尽管AS显示构建成功完成,但它仍无法解决一些导入问题,这导致出现大量红色波浪线:

import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
  • Android Studio版本: 2.1.3
  • 构建工具: 25.0.2(在安装AS之前已安装)、23.0.3(在第一个错误后安装)、27.0.3(在其他两个之后安装)
  • API版本: 19, 21, 23, 24
  • Android Support Repository 版本:47

是的,在项目文件夹中的“build.gradle”文件中有Maven条目。

“app” gradle文件:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "27.0.3"

    defaultConfig {
        applicationId "com.mycompany.myapp"
        minSdkVersion 19
        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')
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.+'
    compile 'com.android.support:support-v4:23.0.3'
}

第一个“编译”也有一个波浪线,消息显示为:“”。
All com.android.support libraries must use the exact same version specification (mixing versions can lead to runtime crashes). 
Found versions 28.0.0-alpha1, 23.4.0.

如果我使用“compile 'com.android.support:support-v4:28.0.0-alpha1'”,则构建会在“:app:processDebugResources”处失败,并且它会抱怨:
AAPT2 error: check logs for details

日志以以下内容开头:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:processDebugResources'.

除了想让我心烦意乱之外,AS到底想要什么?

“Alphas” 经常会出现问题,尝试使用 'com.android.support:appcompat-v7:27.0.3'。您可以将 AS 升级到 v3 版本,这对我解决了大部分仓库问题... - Gotiasits
使用alpha版本时,构建完全失败,而使用v7 23.+则成功。我的项目中没有27.0.3版本(只有我上面提到的3个版本),我甚至不知道从哪里获取它。不知道为什么它根本不起作用,因为在我的Win 7 PC上它表现得很好,尽管我记得AS经常会出问题。v3?我今天下载了AS,大约3-4小时前(这就是我一直在尝试让它工作的时间...),所以我应该有最新版本。 - Neph
3个回答

5
你尝试过在Android Studio中使用“无效缓存/重启”吗?我也遇到过类似的问题,这个方法可以解决。

我刚刚尝试了一下,现在“v4”导入似乎可以正常工作了(普通的清理/重建没有帮助)- 所以感谢您的帮助 - 但是两个“v7”的仍然无法解决,即使 gradle 文件中没有任何下划线(使用 v7 23 和 v3 23.0.3)。 - Neph

2
清除缓存并在项目根目录执行./gradlew --refresh-dependencies。这个方法经常救了我的命。

1
如果您使用的是Unix系统,请使用术语;如果您使用的是Windows系统,请使用cmd。在每个Android项目的根目录下,您都有一个名为“gradlew”的二进制文件。这是Gradle包装器。请使用选项“--refresh-dependencies”运行它。 - Artefact

1
compile 'com.android.support:support-v4:23.0.3'

请删除上述行并同步项目:文件 > 与Gradle文件同步项目


在执行了Duke建议的操作之后,你的建议并没有改变任何事情——无论是好还是坏。在清理/重建项目之后,“v7”导入仍然无法解决。 - Neph
请使用“invalidate cache”重启您的工作室。为了获得更好的性能,buildToolsVersion“27.0.3”应与compileSdkVersion相匹配。 - Hitesh Sarsava
我刚刚试了一下,真是太棒了,现在它可以识别v4和v7的导入,虽然我还没有完全运行它,但目前没有错误信息 - 谢谢!我没有任何安卓8.1的手机,所以我必须将compiledSdkVersion和targetSdkVersion保持在23。我很想使用buildToolsVersion 23.0.3(这是最初设置的版本),但AS会抱怨Android Gradle插件3.1.2的最低支持版本是27.0.3。 - Neph

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接