我决定尝试Play Services OSS License Plugin,遇到了我不太了解的问题。
插件似乎已正确连接,因为我在查看OssLicensesMenuActivity
时看到了。
但是在android上查看股票拨号器应用程序后,他们的OssLicensesMenuActivity
看起来像这样。
为什么我的应用程序显示Maven工件名称,而Google的应用程序却显示了格式良好的开源库依赖项披露?
以下是gradle脚本的相关内容:
项目级别:
buildscript {
ext.kotlin_version = '1.2.51'
ext.kotlin_coroutines_version = '0.22.4'
ext.support_lib_version = '27.1.1'
repositories {
google()
jcenter()
maven {
url 'https://maven.fabric.io/public'
}
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.3'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.gms:google-services:3.2.0'
classpath 'com.google.gms:oss-licenses:0.9.2'
classpath 'io.fabric.tools:gradle:1.25.1'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
模块级别(已删除一些特定于项目的详细信息):
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
apply plugin: 'com.google.gms.oss.licenses.plugin'
android {
compileSdkVersion 27
defaultConfig {
minSdkVersion 21
targetSdkVersion 27
versionCode 1
versionName "4.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
}
dependencies {
implementation project(':repository')
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'com.google.android.gms:play-services-oss-licenses:15.0.1'
implementation 'com.google.firebase:firebase-core:16.0.1'
implementation 'com.google.firebase:firebase-messaging:17.1.0'
implementation 'com.crashlytics.sdk.android:crashlytics:2.9.4'
implementation "com.android.support:appcompat-v7:$support_lib_version"
implementation "com.android.support:preference-v7:$support_lib_version"
implementation "com.android.support:design:$support_lib_version"
implementation "com.android.support:support-v4:$support_lib_version"
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlin_coroutines_version"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$kotlin_coroutines_version"
implementation 'com.google.dagger:dagger:2.11'
compileOnly 'org.glassfish:javax.annotation:10.0-b28'
kapt 'com.google.dagger:dagger-compiler:2.11'
implementation 'androidx.core:core-ktx:0.3'
implementation 'com.squareup.okhttp3:okhttp:3.10.0'
implementation('com.jsibbold:zoomage:1.1.0') {
exclude group: "com.android.support", module: "appcompat-v7"
}
implementation 'com.github.bumptech.glide:glide:4.7.1'
kapt 'com.github.bumptech.glide:compiler:4.7.1'
implementation 'com.jakewharton.timber:timber:4.7.0'
implementation 'com.amplitude:android-sdk:2.14.1'
debugImplementation 'com.squareup.leakcanary:leakcanary-android:1.5.4'
releaseImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.4'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}
apply plugin: 'com.google.gms.google-services'
任何见识都受到赞赏!
答案 0 :(得分:1)
play-services-oss-licenses
库的许可证显示功能(由您的应用程序使用)与Dialer应用程序的内部使用的许可证显示功能(我认为您的第二个屏幕截图所指的)有些微妙的不同。用于显示许可证的插件+ play-services-oss-licenses
方法还考虑了您应用的直接依赖关系(例如org.jetbrains.kotlinx.*
)以及Google Play服务库组件使用的任何OSS库(例如{{1} }。
对于您的应用程序对OSS库的直接依赖关系,我们选择显示完全合格的Maven工件ID,因为这样可以更清楚地了解所使用的库。
Dialer应用程序显示的名称更友好,因为Google使用的构建系统处理OSS库通知和名称的方式不同于外部构建系统。
另外,我们计划在不久的将来使oss-license插件开源,以便您可以自己了解我们在做什么。