关于此问题有很多不同的问题,但是有关使用v7.28.0
,v7.28.+
,v7.28.0.0-rc02
的问题,但是当我同步项目时会出现此错误:
无法解决':app @ debug / compileClasspath'的依赖关系:可以 无法解析com.android.support:appcompat-v7:28.0.0。
我已经检查了Support library setup,并按照说明进行操作,但没有帮助。
这是我的模块应用
buildscript {
repositories {
maven { url 'https://plugins.gradle.org/m2/'}
}
dependencies {
classpath 'gradle.plugin.com.onesignal:onesignal-gradle-plugin:0.12.1'
}
}
apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin'
repositories {
maven { url 'https://maven.google.com' }
}
apply plugin: 'com.android.application'
android {
compileSdkVersion 28
buildToolsVersion '28.0.3'
defaultConfig {
applicationId "com.mobaleghan.nasimnoor"
manifestPlaceholders = [
onesignal_app_id: 'b1ced87b-48d1-4857-a68b-9c287aa4003f',
// Project number pulled from dashboard, local value is ignored.
onesignal_google_project_number: 'REMOTE'
]
minSdkVersion 16
targetSdkVersion 28
versionCode 8
versionName "1.6.3"
vectorDrawables.useSupportLibrary = true
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'),
'proguard-rules.pro'
}
debug {
debuggable true
}
}
lintOptions {
abortOnError false
}
}
dependencies {
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:design:28.0.0'
implementation 'com.android.support:preference-v7:28.0.0'
implementation 'com.android.support:recyclerview-v7:28.0.0'
implementation 'com.android.support:support-annotations:27.1.1'
implementation 'com.android.support:support-v4:28.0.0'
implementation 'com.android.support:cardview-v7:28.0.0'
implementation 'com.google.android.apps.dashclock:dashclock-api:2.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.0'
implementation "com.android.support:support-core-utils:28.0.0"
implementation 'com.onesignal:OneSignal:3.10.3'
}
和项目gradle:
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
}
}
我已经在设置中进行了测试,因此android studio的互联网连接很好,而且我不知道要看什么。
我什至在AS 3.2.1中创建了一个新项目,但出现相同的错误。 我不知道为什么this happens every time I update AS!
答案 0 :(得分:4)
Android项目有2个gradle文件:一个存储在项目范围内,一个存储在应用程序范围内。 (请注意,一个项目可以在内部包含许多应用程序,但是通常只有一个)。因此,您只需要在这2个gradle文件中交换定义的存储库URL。
第1步:删除build.gradle
(应用程序)中的这些代码行
repositories {
maven { url 'https://maven.google.com' }
}
第2步:将其添加到您的build.gradle
(项目)
allprojects {
repositories {
google()
jcenter()
maven { url 'https://maven.google.com' }
maven { url 'https://jitpack.io' }
mavenCentral()
}
}
您必须意识到28.0.0
是android.support
的最后一个稳定版本。因此,您可能想降级版本或将所有内容迁移到androidX
。
28.0.0的稳定版本将成为打包为android.support的最终功能版本。所有后续功能版本将仅以androidx打包的工件形式提供。
看看这个link,欢迎来到androidX
的新时代。
答案 1 :(得分:3)
我敢肯定,其他答案都是好的并且可行。但是我的问题是通过将代理设置为Freedom of Developers来解决的。
此解决方案适用于像我这样的波斯人,他们受到Google对伊朗人的严格限制。
现在我的应用程序gradle看起来像这样:
buildscript {
repositories {
maven { url 'https://plugins.gradle.org/m2/'}
}
dependencies {
classpath 'gradle.plugin.com.onesignal:onesignal-gradle-plugin:0.12.1'
}
}
apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin'
repositories {
maven { url 'https://maven.google.com' }
}
apply plugin: 'com.android.application'
android {
compileSdkVersion 28
buildToolsVersion '28.0.3'
defaultConfig {
applicationId "com.mobaleghan.nasimnoor"
manifestPlaceholders = [
onesignal_app_id: 'b1ced87b-48d1-4857-a68b-9c287aa4003f',
// Project number pulled from dashboard, local value is ignored.
onesignal_google_project_number: 'REMOTE'
]
minSdkVersion 16
targetSdkVersion 28
versionCode 9
versionName "1.6.4"
vectorDrawables.useSupportLibrary = true
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'),
'proguard-rules.pro'
}
debug {
debuggable true
}
}
lintOptions {
abortOnError false
}
}
dependencies {
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:design:28.0.0'
implementation 'com.android.support:preference-v7:28.0.0'
implementation 'com.android.support:recyclerview-v7:28.0.0'
implementation 'com.android.support:support-annotations:28.0.0'
implementation 'com.android.support:support-v4:28.0.0'
implementation 'com.android.support:cardview-v7:28.0.0'
implementation 'com.google.android.apps.dashclock:dashclock-api:2.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation "com.android.support:support-core-utils:28.0.0"
implementation 'com.onesignal:OneSignal:3.10.3'
}
这些存储库基于OneSignal documentations。
顶级构建:
buildscript {
repositories {
google()
jcenter()
maven {
url 'https://maven.google.com/'
name 'Google'
}
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
maven {
url 'https://maven.google.com/'
name 'Google'
}
}
}
一切正常。
答案 2 :(得分:0)
尝试以下操作:
1)取消选中构建工具中的离线工作: 文件->其他设置->默认设置->构建,执行,部署->构建工具-> Gradle->取消选中离线工作选项。
2)如果上述方法不起作用,请转到项目的构建gradle,然后在存储库中添加以下内容:
allprojects {
repositories {
jcenter()
maven {
url "https://maven.google.com"
}
}
}
答案 3 :(得分:0)
将这部分内容从模块的build.gradle
合并到根项目的build.gradle
:
buildscript {
repositories {
maven { url 'https://plugins.gradle.org/m2/'}
}
dependencies {
classpath 'gradle.plugin.com.onesignal:onesignal-gradle-plugin:0.12.1'
}
}
repositories {
maven { url 'https://maven.google.com' }
}
仅将这些行保留在模块的build.gradle
中:
apply plugin: 'com.android.application'
apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin'
android {
...
}
根项目的build.gradle
应该看起来像这样:
buildscript {
repositories {
google()
jcenter()
maven { url 'https://plugins.gradle.org/m2/' }
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
classpath 'gradle.plugin.com.onesignal:onesignal-gradle-plugin:0.12.1'
}
}
allprojects {
repositories {
google()
jcenter()
}
}
答案 4 :(得分:0)
您仍然可以使用28.0.0版,但是现在该迁移到Android X了!!
根据Support Library Documentation:
注意:随着Android 9.0(API级别28)的发布,新的 支持库版本AndroidX,它是 喷气背包AndroidX库包含现有的支持库 并且还包括最新的Jetpack组件。
您可以继续使用支持库。历史文物 (那些版本为27或更早版本,并打包为android.support。*) 仍可在Google Maven上使用。但是,所有新图书馆 开发将在AndroidX库中进行。
我们建议在所有新项目中使用AndroidX库。您 还应该考虑将现有项目迁移到AndroidX。