android studio中的插件和依赖项是否有优先权?

时间:2018-04-11 12:38:41

标签: android android-studio build.gradle

当我像这样设置gradle文件时,每件事都可以:

override fun onCreate(savedInstanceState: Bundle?){
    ....

    val dummyViewModel = ViewModelProviders.of(this).get(DummyViewModel::class.java)

    RestaurantViewModel.liveData.observe(this, Observer<String> {
        mTextView.text = it
    })

    dummyViewModel.test()
}

但是当我交换依赖项和插件时,我收到了这个错误:

dependencies {
    implementation 'com.google.firebase:firebase-messaging:11.0.4'
    compile 'com.android.support:support-v4:22.2.1'
}

apply plugin: 'com.google.gms.google-services'
  

所有gms / firebase库必须使用完全相同的版本   规范(混合版本可能导致运行时崩溃)。发现   版本9.0.0,11.0.4。例子包括   com.google.android.gms:play-services-base:9.0.0和   com.google.android.gms:播放服务地下室:11.0.4

gradle结构中是否有任何优先级以及它与版本的关系? apply plugin: 'com.google.gms.google-services' dependencies { implementation 'com.google.firebase:firebase-messaging:11.0.4' compile 'com.android.support:support-v4:22.2.1' } 是所有版本的一般语法,如果没有,我应该如何在此处自定义其版本?

1 个答案:

答案 0 :(得分:1)

apply plugin: 'com.google.gms.google-services'应始终位于build.gradle

的最底部
  

google-services插件有两个主要功能:

     
      
  1. 处理google-services.json文件并生成可在您的应用程序代码中使用的Android资源。请参阅Adding the JSON File更多信息。
  2.   
  3. 为已启用的服务所需的基本库添加依赖项。此步骤要求apply plugin: 'com.google.gms.google-services'行位于app/build.gradle文件的底部,以便不会引入依赖项冲突。您可以通过运行./gradlew :app:dependencies
  4. 来查看此步骤的结果   

The Google Services Gradle Plugin