2015-12-21 127 views
9
Failed to set up SDK: Error:Module 'app': platform 'Google Inc.:Google APIs:21' not found. 

完全丧失了为什么这不起作用。试图更新我的SDK到23,但意识到我没有准备处理所有新的弃用等,所以我恢复到旧版本的Mercurial。我完全没有别的了,而且回归应该已经解决了一切。不幸的是,我无法连接我的应用程序并构建它。我甚至从头重新安装了Android Studio,但我仍然收到相同的警告,我的应用程序根本无法生成。什么可能会出错?无法设置SDK:错误:模块'app':平台'Google Inc.:Google API:21'找不到

这里是我的gradle构建:

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:[email protected]' 
    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') 
} 

回答

9

您可以使用compileSdkVersion 21,而不是你的。

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' 
     } 
    } 
} 
+0

好吧,一些东西开始工作。现在我得到''错误:原因:未能找到目标21:D:\ Android \ sdk1 Install missing platform(s) and sync project'',但它不会让我安装它。有什么办法可以从某个地方手动下载吗?我想在重新安装Android Studio后,它下载了Sdk 23,但我现在确实需要保持在21。 ''忽略未知的包过滤器'android-21'Warning:包过滤器删除所有包。没有什么可安装的。请考虑尝试在没有包过滤器的情况下再次更新。'' – santafebound

+0

您是否在项目中执行了“清理 - 重建 - 重启 - 同步”? –

+1

是的,我一直在收到同样的问题。 – santafebound

5

暗示与21更换Google Inc.:Google APIs:21的(目前公认的)答案不适合,如果你有一些遗留的应用程序仍然使用谷歌地图V1(例如)。

如果你在这种情况下,你真的需要进行编译Google Inc.:Google APIs:21或23等...

这里的解决方案是

步骤1

打开旧的SDK管理器界面点击在Android Studio SDK Manager下启动独立SDK管理器链接,或者通过从命令行执行${ANDROID_SDK_DIR}/tools/android sdk直接打开它。

然后找到你需要的SDK版本谷歌的API并安装:

screenshot of the SDK Manager

这包是隐藏的,由于某种原因,Android的工作室里,我希望谷歌会在某个删除点。目前SDK 24 one(棉花糖)可用,但25(牛轧糖)不是,它们可能在未来添加它,或者不是。我们将不得不等待观察。

如果您处于这种情况,Google决定停止提供它,您将不得不使用maps v2重写该功能。

步骤2

即使是这样做的,清洁的gradle +后重新同步,你会得到这个错误在Android工作室:

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. 

但是,如果你尝试从做它会编译命令行(./gradlew assembleDebug)。

原因显然与Android Studio嵌入式Java JRE有关。 为了让编译里面的Android Studio中打开在Android Studio中项目结构并提供一个JDK您的系统上安装(您必须安装在计算机上的OpenJDK/OracleJDK)的自定义路径。

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

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

0

当我失败时,我下载了Google API,就像@Daniel Segato解释的那样,这是正确的做法,我仍然一次又一次地收到了这个消息。

直到我做到了。我打开模块的设置(Ctrl + Alt + Shift + S文件>项目结构),并且,对于我的模块,我将编译Sdk版本选项更改为列表中的任何其他项。我使用了resynchornized gradle,然后将选项更改回Google API(API 23)。然后它工作! Android Studio确实非常令人讨厌,除非您在该对话框中更改SDK,否则无法识别该SDK。但这只发生在我身上一次。其他时候,只需下载适当的Google API即可。但这很讨厌。

相关问题