Java 设置SDK失败:错误:模块';应用程序';:平台';谷歌公司:谷歌API:21';找不到

Java 设置SDK失败:错误:模块';应用程序';:平台';谷歌公司:谷歌API:21';找不到,java,android,gradle,sdk,Java,Android,Gradle,Sdk,完全不知道为什么这不起作用。试图将我的SDK更新为23,但意识到我不准备处理所有新的不推荐等问题,所以我在Mercurial上恢复到旧版本。我没有做任何其他事情,回归应该解决所有问题。不幸的是,我无法连接我的应用程序并构建它。我甚至从零开始重新安装了Android Studio,但我仍然收到同样的警告,我的应用程序根本无法构建。可能出了什么问题 这是我的身材: Failed to set up SDK: Error:Module 'app': platform 'Google Inc.:Goog

完全不知道为什么这不起作用。试图将我的SDK更新为23,但意识到我不准备处理所有新的不推荐等问题,所以我在Mercurial上恢复到旧版本。我没有做任何其他事情,回归应该解决所有问题。不幸的是,我无法连接我的应用程序并构建它。我甚至从零开始重新安装了Android Studio,但我仍然收到同样的警告,我的应用程序根本无法构建。可能出了什么问题

这是我的身材:

Failed to set up SDK: Error:Module 'app': platform 'Google Inc.:Google APIs:21' not found.

您可以使用
编译器dkversion 21
代替您的

apply plugin: 'com.android.application'

android {
    compileSdkVersion 'Google Inc.:Google APIs:21'
    buildToolsVersion '21.1.2'

    defaultConfig {
        applicationId "com.elgami.customizer"
        minSdkVersion 14
        targetSdkVersion 21
    }

    buildTypes {
        release {
            minifyEnabled false
            //runProguard false
            //proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}

repositories {
    mavenCentral()
    maven { url "https://jitpack.io" }
}

dependencies {
    compile 'com.ogaclejapan.smarttablayout:library:1.5.0@aar'
    compile 'com.github.antonyt:InfiniteViewPager:v1.0.0'
    compile 'com.android.support:appcompat-v7:22.2.0'
    // recyclerview
    compile 'com.android.support:recyclerview-v7:23.1.1'
    // google analytics
    compile 'com.google.android.gms:play-services-analytics:8.3.0'
    // pager sliding strip
    compile 'com.astuetz:pagerslidingtabstrip:1.0.1'
    // http library (for using beanstream REST)
    compile 'org.apache.httpcomponents:httpclient-android:4.3.5.1'
    // amaazon S3 uploads
    compile 'com.amazonaws:aws-android-sdk-s3:2.1.+'
    // paypal purchasing
    compile files('libs/PayPalAndroidSDK-2.7.1.jar')
    // Module dependency on ParseLoginUI library sources
    compile project(':ParseLoginUI')
    // Parse libs
    compile files('libs/ParseCrashReporting-1.9.2.jar')
    compile files('libs/Parse-1.9.1.jar')
    compile files('libs/ParseFacebookUtilsV4-1.9.1.jar')
    // android support v4
    compile files('libs/android-support-v4.jar')
    // facebook SDK
    compile 'com.facebook.android:facebook-android-sdk:4.1.0'
    //butterknife
    compile 'com.jakewharton:butterknife:6.1.0'
    // Subsampling-scale-image-view (for templating)
    //compile 'com.davemorrissey.labs:subsampling-scale-image-view:3.1.4'
    compile files('libs/AppRater.jar')
}
如果您有一些传统应用程序仍在使用Google Map v1(例如),则建议将
Google Inc.:Google API:21
替换为
21
的答案(目前已被接受)是不合适的

如果你在这种情况下,你真的需要编译谷歌公司:谷歌API:21或23等

这里的解决办法是

步骤1

单击Android Studio SDK管理器下面的Launch Standalone SDK manager链接打开旧SDK管理器界面,或者从命令行执行
${Android_SDK_DIR}/tools/Android SDK
,直接打开它

然后找到所需SDK版本的Google API并安装:

出于某种原因,该软件包被隐藏在Android Studio中,我预计谷歌会在某个时候将其删除。目前SDK24ONE(棉花糖)可用,但25(牛轧糖)不可用,他们可能会在将来添加,也可能不会。我们必须拭目以待

如果你在这种情况下,谷歌决定停止提供它,你将不得不重写使用地图v2的功能

步骤2

即使在执行此操作并清理+gradle重新同步后,您也会从Android Studio中收到以下错误:

    android {
    compileSdkVersion 21
    buildToolsVersion '21.1.2'

    defaultConfig {
        applicationId "com.elgami.customizer"
        minSdkVersion 14
        targetSdkVersion 21
    }

    buildTypes {
        release {
            minifyEnabled false
            //runProguard false
            //proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}
但是如果您尝试从命令行(
/gradlew assembleDebug
)执行此操作,它将被编译

原因显然与Android Studio嵌入式Java JRE有关。 要在Android Studio内部编译,请从Android Studio打开项目结构,并为系统上安装的JDK提供自定义路径(必须在计算机上安装OpenJDK/OracleJDK)

注意:可能需要导航到该位置,而不是复制Android studio进行更改的路径。不要选择
jre
目录,选择JDK(包含
jre
的文件夹)


警告:此更改并非特定于该项目,但将应用于Android Studio本身并用于任何其他项目。

当我失败时,我下载了谷歌API,正如@Daniel Segato解释的那样,这是正确的做法,但我还是一次又一次地收到了消息


直到我这么做。我打开了模块的设置(
Ctrl+Alt+Shift+s
或File>Project Structure),对于我的模块,我将Compile Sdk Version选项更改为列表中的任何其他选项。我重新同步了gradle,然后将选项改回GoogleAPI(API 23)。然后它成功了!在对话框中更改SDK之前,Android Studio无法识别SDK,这真是令人讨厌。但这只发生在我身上一次。其他时候,只要下载合适的谷歌API就足够了!但这很糟糕。

我的问题出在我的身材上。格雷德尔!当我打开它时,它是这样的:

Cannot find System Java Compiler. Ensure that you have installed a JDK (not just a JRE) and configured your JAVA_HOME system variable to point to the according directory.
怎么修好的

  • 删除
    “谷歌公司:谷歌API:21”
    并编写29代替它
  • 2.为
    targetSdkVersion设置29

    结果:

    android {
        compileSdkVersion 'Google Inc.:Google APIs:21'
        buildToolsVersion "29.0.2"
        defaultConfig {
            applicationId "com.pixelnx.sam.allinone_room"
            minSdkVersion 21
            targetSdkVersion 21
    

    嗯,有些事情开始起作用了。现在我得到
    错误:原因:找不到目标21:D:\Android\sdk1
    ,但它不允许我安装它。有没有办法从某处手动下载?我猜在重新安装Android Studio之后,它下载了Sdk 23,但我现在真的需要将它保持在21<代码>忽略未知包筛选器“android-21”警告:包筛选器已删除所有包。没有要安装的东西。请考虑在没有包过滤器的情况下再次尝试。您在项目中进行了代码>清洁重建,重新启动同步< /代码>吗?是的,而且我一直在得到同样的问题。它起作用了!非常感谢你。哈哈。多么痛苦的经历啊。我花了好几个小时试图重新启动并运行它。你实际上(仍然)可以根据谷歌版本的API进行编译,但你需要从旧的SDK管理器中安装这些API(请参阅我对这篇文章的回答)——如果你仍然需要该版本的功能(例如旧地图v1),这是唯一真正的解决方案
    android {
        compileSdkVersion 29
        buildToolsVersion "29.0.2"
        defaultConfig {
            applicationId "com.pixelnx.sam.allinone_room"
            minSdkVersion 21
            targetSdkVersion 29