sdk platform-tools版本(26.0.2)太旧了,无法检查使用API​​ 27编译的API;请更新

时间:2017-11-08 11:36:48

标签: android intellij-idea gradle sdk platform-tools

我正在使用IntelliJ Idea社区版2017.2.5并正在构建Android应用程序。

我的问题是,即使在我的应用程序(Gradle)中,我也有:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 27
    buildToolsVersion "27.0.0"
    defaultConfig {
        applicationId "com.app.mtvtr"
        minSdkVersion 21
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}
allprojects {
    repositories {
        jcenter()
        maven {
            url "https://maven.google.com"
        }
    }
}
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.0.0'
    compile 'com.android.support:design:27.0.0'
    compile 'com.android.support.constraint:constraint-layout:1.0.0-beta4'
    compile 'com.android.support:support-v4:27.0.0'
    testCompile 'junit:junit:4.12'
}

此外,在项目的第一次构建时,编译为appcompat,设计和支持设置为27+(恕我直言,这是一个不好的做法,并已被工作室指出为一个坏主意),所以使用我的工具有,我已将其设置为27.0.1,之后设置为27.0.0,仅用于测试是否可行..

在我的片段和活动中,我有:

Package-code

警告说:

  

sdk platform-tools版本(26.0.2)太旧,无法检查API   用API 27编译;请更新

现在,我知道有关于旧版本和新版本的SO主题,但我(我相信)正确设置了Gradle,我无处使用平台工具版本26甚至26.0.2 ... < / p>

我尝试过三次重启和无效缓存。

项目正确构建到设备上,一切正常。但是,当然,我想修复警告。 (而不是像有人暗示的那样隐藏它。)

我想到的两件事是:

  1. 我错过了我应该更新版本的地方,也许?
  2. 我需要从头开始一个新项目。
  3. 有什么想法吗? :)

3 个答案:

答案 0 :(得分:1)

Android Studio 3.0将合并到IntelliJ IDEA 2017.3版本中,这将使build.gradle插件与之兼容。这将使这个错误消失。

对于那些在Android Studio中遇到此问题的人,请检查您的根3.0.0文件,并确保将其更新为上述插件版本(26.0.2),以便能够使用当前最新的构建工具(4.1)针对API 27进行编译。

因此,您可能还必须将Gradle包装器更新为最新版本(此答案时using (SqlConnection con = new SqlConnection("Data Source=*** Initial Catalog=***y;Persist Security Info=True;User ID=***;Password=***"))//connection string { con.Open(); SqlCommand cmd = new SqlCommand("SELECT SubjectName FROM dbo.mySubjects WHERE SubjectClass = @theSubjectClass", con);//query string cmd.Parameters.Add("@theSubjectClass", SqlDbType.VarChar).Value = myClass; SqlDataReader dr = cmd.ExecuteReader(); dr.Read(); //int t = 0; //count = count + 1; Tried adding a counter that gets the number of raws in the table that meet the search query and create a loop based on that but it produces an error of trying to read data where there is no data to read while ( count >= 0) { dr.Read(); List <string> Subjects = new List<string>(); Subjects.Add(dr.GetString(0)); //t = 0; foreach (var course in Subjects) { var a = new HtmlGenericControl("a"); a.Attributes["class"] = "color-info"; var container = new HtmlGenericControl("div"); container.Attributes["class"] = "col-lg-4 col-sm-6"; var div = new HtmlGenericControl("div"); div.Attributes["class"] = "card card-warning wow zoomInUp animation-delay-5"; var text = new HtmlGenericControl("div"); text.Attributes["class"] = "card-block text-center"; var p = new HtmlGenericControl("p"); text.Controls.Add(p); string manage = dr.GetValue(0) + " Videos"; var btn = new Button { Text = manage, CssClass = "btn btn-warning" }; btn.Click += new EventHandler(ExploreButtonClick); text.Controls.Add(btn); div.Controls.Add(text); container.Controls.Add(div); a.Controls.Add(container); Row.Controls.Add(a); count = count - 1; } } con.Close(); } )。

答案 1 :(得分:0)

您只需启动SDK Manager并下载 Android SDK平台工具 SDK工具

这里是official doc.

答案 2 :(得分:-4)

似乎这是一个IDE问题,因为它在Android Studio 3.0中没有出现警告,正如CrazyCoder所建议的那样。

目前似乎IntelliJ Idea尚未更新,无法使其正常工作。所以,即使我从一开始就使用Idea,我现在也会切换到AS。 :)

感谢您的输入人员。 :)