| import net.ltgt.gradle.errorprone.CheckSeverity |
| |
| plugins { |
| id 'com.android.library' |
| id 'net.ltgt.errorprone' |
| id 'com.vanniktech.maven.publish' |
| } |
| |
| android { |
| resourcePrefix 'lottie_' |
| compileSdk 31 |
| defaultConfig { |
| minSdk 16 |
| targetSdk 30 |
| testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" |
| } |
| lintOptions { |
| abortOnError true |
| textReport true |
| textOutput 'stdout' |
| } |
| compileOptions { |
| sourceCompatibility JavaVersion.VERSION_1_8 |
| targetCompatibility JavaVersion.VERSION_1_8 |
| } |
| testOptions { |
| unitTests { |
| includeAndroidResources = true |
| } |
| } |
| } |
| |
| dependencies { |
| implementation "androidx.appcompat:appcompat:$appcompatVersion" |
| // Do not upgrade to 2.0 because it will bring in Kotlin as a transitive dependency. |
| //noinspection GradleDependency |
| implementation("com.squareup.okio:okio:1.17.4") |
| |
| annotationProcessor "com.uber.nullaway:nullaway:0.9.2" |
| errorprone "com.google.errorprone:error_prone_core:2.9.0" |
| //noinspection GradleDynamicVersion |
| errorproneJavac "com.google.errorprone:javac:9+181-r4173-1" |
| |
| testImplementation "org.mockito:mockito-core:$mockitoVersion" |
| testImplementation "org.robolectric:robolectric:$robolectricVersion" |
| testImplementation "junit:junit:$junitVersion" |
| androidTestImplementation "androidx.test.ext:junit:$extJunitVersion" |
| androidTestImplementation "androidx.test.espresso:espresso-core:$espressoVersion" |
| } |
| |
| task sourcesJar(type: Jar) { |
| from android.sourceSets.main.java.srcDirs |
| archiveClassifier.set('sources') |
| } |
| |
| task javadoc(type: Javadoc) { |
| source = android.sourceSets.main.java.srcDirs |
| configurations.implementation.setCanBeResolved(true) |
| classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) + configurations.implementation |
| } |
| |
| tasks.withType(Javadoc) { |
| // This started failing with the following when upgrading to AGP 7 and JDK 11. |
| // TODO: investigate why once AGP 7 is stable. |
| // javadoc: error - The code being documented uses modules but the packages defined in https://developer.android.com/reference/ are in the unnamed module. |
| failOnError false |
| } |
| |
| tasks.withType(JavaCompile) { |
| // remove the if condition if you want to run NullAway on test code |
| if (!name.toLowerCase().contains("test")) { |
| options.errorprone { |
| option("NullAway:AnnotatedPackages", "com.airbnb.lottie") |
| // TODO: enable these and fix errors one by one. |
| check("NullAway", CheckSeverity.OFF) |
| check("StringSplitter", CheckSeverity.OFF) |
| check("DefaultCharset", CheckSeverity.OFF) |
| check("HidingField", CheckSeverity.OFF) |
| check("NarrowingCompoundAssignment", CheckSeverity.OFF) |
| check("MissingOverride", CheckSeverity.OFF) |
| check("ReferenceEquality", CheckSeverity.OFF) |
| check("FallThrough", CheckSeverity.OFF) |
| check("FloatingPointLiteralPrecision", CheckSeverity.OFF) |
| check("MissingCasesInEnumSwitch", CheckSeverity.OFF) |
| check("OperatorPrecedence", CheckSeverity.OFF) |
| // Disabled checks |
| check("MixedMutabilityReturnType", CheckSeverity.OFF) |
| check("MissingSummary", CheckSeverity.OFF) |
| check("InlineMeSuggester", CheckSeverity.OFF) |
| } |
| } |
| } |