
This picks up a fix to ensure Android Studio puts the `@OptIn` annotation in the correct place: https://issuetracker.google.com/251172715 This also introduces a transitive dependency from `media3-common` on the Kotlin standard library, so this CL also includes some updates to the dev guide to document how apps can avoid including this dep if they want. PiperOrigin-RevId: 558821673
107 lines
4.2 KiB
Groovy
107 lines
4.2 KiB
Groovy
// Copyright (C) 2016 The Android Open Source Project
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
apply from: '../../constants.gradle'
|
|
apply plugin: 'com.android.application'
|
|
apply plugin: 'kotlin-android'
|
|
|
|
android {
|
|
namespace 'androidx.media3.demo.main'
|
|
|
|
compileSdkVersion project.ext.compileSdkVersion
|
|
|
|
compileOptions {
|
|
sourceCompatibility JavaVersion.VERSION_1_8
|
|
targetCompatibility JavaVersion.VERSION_1_8
|
|
}
|
|
|
|
defaultConfig {
|
|
versionName project.ext.releaseVersion
|
|
versionCode project.ext.releaseVersionCode
|
|
minSdkVersion project.ext.minSdkVersion
|
|
targetSdkVersion project.ext.appTargetSdkVersion
|
|
multiDexEnabled true
|
|
}
|
|
|
|
buildTypes {
|
|
release {
|
|
shrinkResources true
|
|
minifyEnabled true
|
|
proguardFiles = [
|
|
"proguard-rules.txt",
|
|
getDefaultProguardFile('proguard-android.txt')
|
|
]
|
|
signingConfig signingConfigs.debug
|
|
}
|
|
debug {
|
|
jniDebuggable = true
|
|
}
|
|
}
|
|
|
|
lintOptions {
|
|
// The demo app isn't indexed, doesn't have translations, and has a
|
|
// banner for AndroidTV that's only in xhdpi density.
|
|
disable 'GoogleAppIndexingWarning','MissingTranslation','IconDensities'
|
|
}
|
|
|
|
flavorDimensions "decoderExtensions"
|
|
|
|
productFlavors {
|
|
noDecoderExtensions {
|
|
dimension "decoderExtensions"
|
|
buildConfigField "boolean", "USE_DECODER_EXTENSIONS", "false"
|
|
}
|
|
withDecoderExtensions {
|
|
dimension "decoderExtensions"
|
|
buildConfigField "boolean", "USE_DECODER_EXTENSIONS", "true"
|
|
}
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
compileOnly 'org.checkerframework:checker-qual:' + checkerframeworkVersion
|
|
implementation 'androidx.annotation:annotation:' + androidxAnnotationVersion
|
|
// Demonstrate downgrading the annotation-experimental version to avoid
|
|
// transitively depending on the Kotlin standard library (which was
|
|
// introduced as a dependency in annotation-experimental:1.3.0). This demo
|
|
// app still depends on Kotlin via the IMA extension and UI modules, but
|
|
// this shows how an app can avoid the Kotlin dependency if they don't use
|
|
// these modules.
|
|
implementation('androidx.annotation:annotation-experimental') {
|
|
version {
|
|
strictly '1.2.0'
|
|
}
|
|
}
|
|
implementation 'androidx.appcompat:appcompat:' + androidxAppCompatVersion
|
|
implementation 'androidx.multidex:multidex:' + androidxMultidexVersion
|
|
implementation 'com.google.android.material:material:' + androidxMaterialVersion
|
|
implementation project(modulePrefix + 'lib-exoplayer')
|
|
implementation project(modulePrefix + 'lib-exoplayer-dash')
|
|
implementation project(modulePrefix + 'lib-exoplayer-hls')
|
|
implementation project(modulePrefix + 'lib-exoplayer-rtsp')
|
|
implementation project(modulePrefix + 'lib-exoplayer-smoothstreaming')
|
|
implementation project(modulePrefix + 'lib-ui')
|
|
implementation project(modulePrefix + 'lib-datasource-cronet')
|
|
implementation project(modulePrefix + 'lib-exoplayer-ima')
|
|
withDecoderExtensionsImplementation project(modulePrefix + 'lib-decoder-av1')
|
|
withDecoderExtensionsImplementation project(modulePrefix + 'lib-decoder-ffmpeg')
|
|
withDecoderExtensionsImplementation project(modulePrefix + 'lib-decoder-flac')
|
|
withDecoderExtensionsImplementation project(modulePrefix + 'lib-decoder-opus')
|
|
withDecoderExtensionsImplementation project(modulePrefix + 'lib-decoder-vp9')
|
|
withDecoderExtensionsImplementation project(modulePrefix + 'lib-decoder-midi')
|
|
withDecoderExtensionsImplementation project(modulePrefix + 'lib-datasource-rtmp')
|
|
}
|
|
|
|
apply plugin: 'com.google.android.gms.strict-version-matcher-plugin'
|