Quickblox:未找到 SDK 位置

Quickblox: SDK location not found

我已经从 Quickblox 导入了示例聊天应用程序。 sdk.dir 在 local.properties 中就位,但我可能会收到以下错误:

Gradle 'sample-chat' project refresh failed
Error:SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable.

有人知道为什么会这样吗?

如您所见,此错误与 Android SDK 位置有关,而不与特定库(如 QuickBlox)有关。只需在设置中为您的项目设置 Android API 级别。 有关详细信息,请参阅 https://developer.android.com/tools/studio/index.html

我想我知道发生了什么,这与@Darya 所说的有关。如果您查看 sample-chat 模块的 build.gradle,您将看到以下行(以及其他行)

android {    
    defaultConfig {
        minSdkVersion rootProject.minSdkVersion
        targetSdkVersion rootProject.targetSdkVersion
    }
}

这里的SDK版本是根据根项目使用的版本来定义的。如果您查看 Gradle documentationrootProject 定义了可以找到属性的范围,即项目本身。 如果您只将 sample-chat 导入 Android Studio,那么这些行会告诉 Gradle 在您定义它的同一项目中查找属性,因此它相当于非法自我 reference/definition.

如@Darya 所述,一种解决方案是将这些定义更改为有意义的内容,例如:

android {    
    defaultConfig {
        minSdkVersion 15
        targetSdkVersion 23
    }
}  

或者您可以改为导入 quickblox-android-sdk 项目。执行此操作后,rootProject 变量将指向该项目,并将从项目的 build.gradle 中读取属性,而不是 sample-chat 模块中的属性。