我试图将com.google.gms:google-services:3.0.0
包含在我的cordova插件中,而不必将其隐藏到主build.gradle
文件中。我已将以下文件添加到我的应用程序中:
集结extras.gradle
buildscript {
repositories {
mavenCentral()
jcenter()
}
dependencies {
classpath 'com.google.gms:google-services:3.0.0'
}
}
apply plugin: 'com.google.gms.google-services'
尝试构建应用程序时出现以下错误:
* Where:
Script 'platforms/android/build-extras.gradle' line: 11
* What went wrong:
A problem occurred evaluating script.
> Plugin with id 'com.google.gms.google-services' not found.
我尝试使用build-extras.gradle
添加<framework src="src/android/build-extras.gradle" custom="true" type="gradleReference" />
,并手动将其复制到platforms/android
。
科尔多瓦参考: https://cordova.apache.org/docs/en/latest/guide/platforms/android/#extending-buildgradle
Google参考: https://developers.google.com/identity/sign-in/android/start-integrating
如果我从build-extras.gradle
获取相同的代码并直接追加到build.gradle
的末尾,那么它似乎有效。关于如何在我的build-extras.gradle
文件中使用它的任何想法?
答案 0 :(得分:1)
您必须使用
包装 build-extras.gradleext.postBuildExtras = { //... your gradle supplement }
以下是 build-extras.gradle 文件的示例:
ext.postBuildExtras = {
android {
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/notice.txt'
exclude 'META-INF/ASL2.0'
}
}
dependencies {
compile files('libs/httpclient-4.5.4.jar', 'libs/httpcore-4.4.7.jar')
}
}
并将其放在与 build.gradle 文件相同的文件夹下。 在Cordova Android v7.0.0之后,你应该这样放置它:
$PROJECT_PATH/platforms/android/app/build.gradle
$PROJECT_PATH/platforms/android/app/build-extras.gradle
答案 1 :(得分:0)
从某些Gradle参考文件中:
必须使用类而不是id(string)才能应用插件 从非根gradle文件
您必须在gradle文件的底部包含这样的类:
ext.postBuildExtras = {
apply plugin: com.google.gms.googleservices.GoogleServicesPlugin
}