2016-08-23 3 views
2

Я не могу синхронизировать проект Basic Samples от Google Play Services. Я пробовал обновить версии minsdk, targetsdk, compilesdk, обновил структуру проекта и вкусы, но проект все равно не будет sync.Не удалось синхронизировать проект градиента в Android Studio

Это моя ошибка:

Error:Could not find method compile() for arguments [com.android.support:support-v4:24.2.0] on DefaultExternalModuleDependency{group='com.android.support', name='appcompat-v7', version='24.2.0', configuration='default'} of type org.gradle.api.internal.artifacts.dependencies.DefaultExternalModuleDependency. 

Please install the Android Support Repository from the Android SDK Manager. 
<a href="openAndroidSdkManager">Open Android SDK Manager</a> 

Однако я установил последнюю Android Support Repository (rev 36), так что я предполагаю, что вопрос-то еще.

Если вы хотите, чтобы попытаться клонировать проект: https://github.com/playgameservices/android-basic-samples.git

gradle файл:

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 24 
    buildToolsVersion '24.0.1' 
    defaultConfig { 

     /* 
      REPLACE THIS VALUE WITH YOUR APPLICATION ID 
     */ 
     applicationId "com.google.example.games.replace.me" 

     minSdkVersion 19 
     targetSdkVersion 24 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 
     } 
    } 
    productFlavors { 
    } 
} 

dependencies { 
    compile "com.android.support:appcompat-v7:${appcompat_library_version}" compile "com.android.support:support-v4:${support_library_version}" compile project(':libraries:BaseGameUtils') 
} 

buildscript { 
    repositories { 
     jcenter() 
    } 
} 

ответ

8

Проблема на самом деле является довольно незначительным: у вас нет конечные строки после каждой зависимости.

Это

dependencies { 
compile "com.android.support:appcompat-v7:${appcompat_library_version}" compile "com.android.support:support-v4:${support_library_version}" compile project(':libraries:BaseGameUtils') 
} 

должен быть

dependencies { 
    compile "com.android.support:appcompat-v7:${appcompat_library_version}" 
    compile "com.android.support:support-v4:${support_library_version}" 
    compile project(':libraries:BaseGameUtils') 
} 

Эта ошибка является довольно распространенным явлением, когда плагин на Android Studio редактирует или изменяет Gradle файл в любом случае, когда зависимость использует переменную вместо прямая ссылка на номер версии. Например, я заметил, что это случилось со мной при использовании плагина Method Counts или даже плагина Firebase.

1

Наконец получил работу вокруг:

Я удалил этот раздел из основных образцов Gradle файлов

ext { 
    android_compile_version = 24 
    android_version = '24.0.1' 
    android_min_sdk_version = 19 

    appcompat_library_version = '24.2.0' 
    support_library_version = '24.2.0' 
    gms_library_version = '9.4.0' 
} 

и re переместил это из других файлов градиента:

dependencies { 
    compile "com.android.support:appcompat-v7:${appcompat_library_version}" 
    compile "com.android.support:support-v4:${support_library_version}"   
    compile project(':libraries:BaseGameUtils') 
} 

и заменил их на фактические значения.

dependencies { 
    compile "com.android.support:appcompat-v7:24.2.0" 
    compile "com.android.support:support-v4:24.2.0"   
    compile project(':libraries:BaseGameUtils') 
} 

Каким-то образом это вся разница

EDIT

Проблема на самом деле не имеющие конечные строки после каждой зависимости! Не записывайте все свои зависимости от той же линии

Проблема в gradle Файл:

dependencies { 
    compile "com.android.support:appcompat-v7:${appcompat_library_version}" compile "com.android.support:support-v4:${support_library_version}" compile project(':libraries:BaseGameUtils') 
} 

Решение:

dependencies { 
    compile "com.android.support:appcompat-v7:24.2.0" 
    compile "com.android.support:support-v4:24.2.0"   
    compile project(':libraries:BaseGameUtils') 
} 
+2

Несомненно, вы сделали что-то еще, потому что все, что вы сделали, это удалить некоторые строковые переменные. –

+0

Хммм ... звучит как волшебство ?! – Tima

+0

Это были концы! см. выбранный ответ выше – user2456977

0

Убедитесь, что следующий код вашего проекта build.gradle:

allprojects { 
    repositories { 
     jcenter() 
     maven { 
      url "https://maven.google.com" 
     } 
    } 
} 

Мой проект отсутствовал в Google, Maven Repo URL. Добавил его, и градиль синхронизирован как шарм.

Надеюсь, это сэкономит чье-то время.

Смежные вопросы