无法解决Android Studio新项目中的com.android.support:appcompat-v7:26.1.0

时间:2017-11-23 05:55:30

标签: android android-gradle android-studio-3.0

我知道这个问题:

Failed to resolve: com.android.support:cardview-v7:26.0.0 android

Could not resolve com.android.support:appcompat-v7:26.1.0 [duplicate]

我读过这些文件:

Migrate to Android Plugin for Gradle 3.0.0

Migrating to Android 8.0

所以我发帖说这个问题并不重复。

我安装了Android Studio 3.0.1。之前我没有任何以前的版本,我开始了一个新项目。

Gradle文件中的每个设置都是由Android Studio本身设置的,我已经全部检查过了。

这些是文件内容:

build.gradle(模块:应用)

    apply plugin: 'com.android.application'

    android {
        compileSdkVersion 26
        defaultConfig {
            applicationId "com.example.administrator.as301test"
            minSdkVersion 16
            targetSdkVersion 26
            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:26.1.0'
        implementation 'com.android.support.constraint:constraint-layout:1.0.2'
        implementation 'com.android.support:design:26.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'
    }

顶级build.gradle

buildscript {

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


        // 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
}

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.1-all.zip

我在存储库中使用google()here清楚地说:

  // If you're using a version of Gradle lower than 4.1, you must instead use:
     // maven {
     //     url 'https://maven.google.com'
     // }

我的gradle版本是4.1所以我不需要上面的代码。

但我仍然得到其他人一直在询问的错误:

  

错误:无法解析':app @ debug / compileClasspath'的依赖关系:   无法解析com.android.support:appcompat-v7:26.1.0。

为什么在AS 3.0.1创建新项目并且已设置所有必要设置时,是否应该收到此错误?

更新

@ Rohit的答案以某种方式解决了这个问题,但我仍然得到其他一些依赖项的相同错误。

  

无法解析com.android.support.test:runner:1.0.1

     

无法解决   com.android.support.test.espresso:浓咖啡核:3.0.1

     

无法解决junit:junit:4.12

14 个答案:

答案 0 :(得分:19)

最后,我通过修改build.gradle来解决问题:

android {
    compileSdkVersion 26
    buildToolsVersion "26.0.2"

    defaultConfig {
        minSdkVersion 16
        targetSdkVersion 26
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:26.1.0'
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    implementation 'com.android.support:design:26.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'

此外,我将现有项目从2.3迁移到3.0.1也遇到了同样的问题,并且修改了像这样的项目gradle文件,我想出了一个可行的解决方案:

build.gradle (模块应用)

android {
    compileSdkVersion 27
    buildToolsVersion "27.0.1"

    defaultConfig {
        applicationId "com.mobaleghan.tablighcalendar"
        minSdkVersion 16
        targetSdkVersion 27
    }

dependencies {
    implementation 'com.android.support:appcompat-v7:25.1.0'
    implementation 'com.android.support:design:25.1.0'
    implementation 'com.android.support:preference-v7:25.1.0'
    implementation 'com.android.support:recyclerview-v7:25.1.0'
    implementation 'com.android.support:support-annotations:25.1.0'
    implementation 'com.android.support:support-v4:25.1.0'
    implementation 'com.android.support:cardview-v7:25.1.0'
    implementation 'com.google.android.apps.dashclock:dashclock-api:2.0.0'
}

顶级build.gradle

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

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

答案 1 :(得分:6)

enter image description here转到Android-> sdk-> build-tools目录,确保您拥有所需的所有版本。如果没有,请下载它们。之后 转到文件 - > Settigs - >构建,执行,Depoyment - > Gradle

选择 使用默认gradle wapper(推荐)

并取消 离线工作

一旦您可以更改设置,

gradle build就会成功完成

如果它只是解决问题

检查此链接以查找适当的支持库修订

https://developer.android.com/topic/libraries/support-library/revisions

确保编译sdk和目标版本与支持库版本相同。 建议至少在第一次构建时保持网络连接(记住在执行此操作后重建项目)

答案 2 :(得分:5)

试试这个:

android {
    compileSdkVersion 26
    buildToolsVersion "26.0.1"
defaultConfig {

        targetSdkVersion 26
    }

}


compile 'com.android.support:appcompat-v7:25.1.0'

它对我有用

答案 3 :(得分:5)

我尝试了上述所有内容,对我没有任何作用。

然后我按照Gradle设置>构建执行,部署> Gradle> Android Studio并选中“禁用嵌入式Maven存储库”。

是否已对此构建进行了检查并解决了问题。

答案 4 :(得分:3)

去吧    文件\设置\摇篮。取消选中“离线工作”框。现在你可以连接和    下载任何必要或缺少的依赖项

答案 5 :(得分:2)

您的Android工作室可能会忘记放置:    buildToolsVersion" 26.0.0" 你需要' buildTools'开发相关设计和java文件。如果Android-> sdk-> build-tools目录中没有安装任何buildTools,请先下载。

答案 6 :(得分:2)

很好地从另一个网站得到了这个答案,并且不想为此承担任何责任,但这个解决方案就像黄油一样。

转到文件\设置\ Gradle。取消选择"脱机工作"框。现在,您可以连接并下载任何必要或缺少的依赖项。

答案 7 :(得分:1)

为我工作。在 android \ app \ build.gradle 文件中,您需要指定以下内容

compileSdkVersion 26
buildToolsVersion "26.0.1"

然后找到这个

compile "com.android.support:appcompat-v7"

并确保它说

compile "com.android.support:appcompat-v7:26.0.1"

答案 8 :(得分:1)

好的,这是一个错误的方法,但是如果您这样使用它:

*ngIf="!(this.questions['page-state'] =="")"

Android Studio将使用其拥有的最新版本。

就我而言是26.0.0alpha-1。

您可以在外部库中看到使用的版本(在项目视图中)。

我尝试了所有内容,但无法使用高于26.0.0alpha-1的任何值,似乎我的IP被Google阻止了。任何想法?评论

答案 9 :(得分:1)

就我而言,当我尝试使用gridView时会发生此错误

我通过从build.grade(Module)文件中删除此行来解决了该问题

implementation 'com.android.support:gridlayout-v7:28.0.0-alpha3'

答案 10 :(得分:0)

此问题似乎如下。

How to resolve repository certificate error in Gradle build

以下步骤可能有所帮助:

<强> 1。将证书添加到密钥库 -

从Android Studio的cacerts中将一些认证导入Android Studio JDK cacerts。

Android Studio的cacerts可能位于

{your-home-directory}/.AndroidStudio3.0/system/tasks/cacerts

我使用了以下导入命令。

$ keytool -importkeystore -v -srckeystore {src cacerts} -destkeystore {dest cacerts}

<强> 2。将修改后的cacert路径添加到gradle.properties -

systemProp.javax.net.ssl.trustStore={your-android-studio-directory}\\jre\\jre\\lib\\security\\cacerts
systemProp.javax.net.ssl.trustStorePassword=changeit

参考:https://www.cresco.co.jp/blog/entry/2014/ /

答案 11 :(得分:0)

尝试通过清除Android Studio中的缓存 文件->无效缓存->无效 无效后 建立->清洁项目 然后您就可以构建项目了

答案 12 :(得分:0)

这对我有用

compile 'com.android.support:appcompat-v7:26.0.0'

将26.0.0更改为26.0.1

compile 'com.android.support:appcompat-v7:26.0.1'

答案 13 :(得分:0)

这对我有用。在app / build.gradle中添加configuration.all

    <?php
    require_once('config.php');

    //PDO Connection | 数据库连接
    try{
        $dbc = new PDO('mysql:host='.DB_HOST.';port='.DB_PORT.';dbname='.DB_NAME.';charset=utf8mb4',DB_USER,DB_PASS);
        $dbc->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    } catch (Exception $e) {
        if(DEBUG_MODE)die($e->getMessage());
        die('Fail to Connect the Database.');
    }

    // Insert URL to database 
    function urlInsert($params){
        $url=$params['url'].'';
        $curl=urlencode($url);
        $host=parse_url($url)['host'];
       if ($url=="www.Mediamarkt.de"){
        $surl='https://'.$curl.'/aff=12115?';
}elseif ($url=="www.otto.de"){
        $surl='https://'.$curl.'/aff=615?';
}elseif ($url=="www.amazon.de"){
        $surl='https://'.$curl.'/aff=2519?';
}elseif ($url=="www.nike.com"){
        $surl='https://'.$curl.'/ad587s?';
 }else

        $ip=trim(end(explode(',',$_SERVER['HTTP_X_FORWARDED_FOR'])));
        
        do{
            $ukey=ukeyGen();
        }while(ukeyCheck($ukey));
        
        global $dbc;
        try{
            $stmt = $dbc->prepare("INSERT INTO `".DB_TABLE."` (`domain`, `url`, `ukey`, `ip`) VALUES 
                                (:host, :url, :ukey, :ip)");
            $stmt->bindParam(':host',$host);
            $stmt->bindParam(':url',$url);
            $stmt->bindParam(':ukey',$ukey);
            $stmt->bindParam(':ip',$ip);
            $stmt->execute();

            if($stmt->rowCount()){
                return $ukey;
            }
            else{
                return false;
            }

        } catch (Exception $e) {
            if(DEBUG_MODE)die($e->getMessage());
            die('Fail to excute command');
        }
    }