Skip to content
Open
9 changes: 1 addition & 8 deletions example/thirdparty/android-compose-samples/build.mill
Original file line number Diff line number Diff line change
Expand Up @@ -317,9 +317,6 @@ object Jetchat extends mill.api.Module {
true
}

// FIXME: R8 should compile without missing classes errors
override def androidR8Args = Seq("--map-diagnostics", "error", "warning")

def mvnDeps = super.mvnDeps() ++ Seq(
mvn"junit:junit:4.13.2",
mvn"androidx.test:core:1.6.1",
Expand All @@ -329,11 +326,7 @@ object Jetchat extends mill.api.Module {
mvn"androidx.test.ext:junit:1.2.1",
mvn"org.jetbrains.kotlinx:kotlinx-coroutines-test:1.10.2",
mvn"androidx.compose.ui:ui-test",
mvn"androidx.compose.ui:ui-test-junit4",
mvn"androidx.collection:collection-ktx:1.5.0",
mvn"androidx.savedstate:savedstate-ktx:1.3.0",
mvn"androidx.appcompat:appcompat:1.7.0",
mvn"androidx.lifecycle:lifecycle-viewmodel-compose:2.9.0"
mvn"androidx.compose.ui:ui-test-junit4"
)

}
Expand Down
5 changes: 2 additions & 3 deletions example/thirdparty/androidtodo/build.mill
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,6 @@ object app

def mvnDeps: T[Seq[Dep]] = super.mvnDeps() ++ Seq(
mvn"androidx.core:core-ktx:1.15.0",
mvn"androidx.appcompat:appcompat:1.7.0",
mvn"androidx.annotation:annotation:1.9.1",
mvn"org.jetbrains.kotlinx:kotlinx-coroutines-android:1.9.0",
mvn"com.jakewharton.timber:timber:5.0.1",
Expand Down Expand Up @@ -145,7 +144,7 @@ object app

object androidTest
extends AndroidAppKotlinInstrumentedTests,
AndroidR8AppModule,
AndroidR8InstrumentedTestsModule,
AndroidHiltSupport {

def moduleDeps = super.moduleDeps ++ Seq(`shared-test`)
Expand All @@ -164,7 +163,6 @@ object app
}

override def androidProjectProguardFiles = Task.Sources(
"proguard-rules.pro",
"proguardTest-rules.pro"
)
override def androidDefaultProguardFileNames: Task[Seq[String]] = Task.Anon {
Expand All @@ -184,6 +182,7 @@ object app
// Dependencies for Android unit tests
mvn"junit:junit:4.13.2",
mvn"org.jetbrains.kotlinx:kotlinx-coroutines-test:1.9.0",
mvn"androidx.appcompat:appcompat:1.7.0",
// AndroidX Test - Instrumented testing
mvn"androidx.test:core-ktx:1.6.1",
mvn"androidx.test.ext:junit-ktx:1.2.1",
Expand Down
26 changes: 10 additions & 16 deletions libs/androidlib/src/mill/androidlib/AndroidAppModule.scala
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,14 @@ import mill.javalib.*
import os.{Path, RelPath, zip}
import os.RelPath.stringRelPathValidated
import upickle.*
import scala.concurrent.duration.*

import scala.concurrent.duration.*
import scala.jdk.OptionConverters.RichOptional
import scala.xml.*
import mill.api.daemon.internal.bsp.BspBuildTarget
import mill.api.daemon.internal.EvaluatorApi
import mill.javalib.testrunner.TestResult

import scala.util.Properties.isWin

/**
Expand Down Expand Up @@ -134,12 +135,13 @@ trait AndroidAppModule extends AndroidModule { outer =>
)

/**
* Collect files from META-INF folder of classes.jar (not META-INF of aar in case of Android library).
* Collect files from META-INF folder of [[androidPackagedDeps]] (not META-INF of aar in case of Android library).
* to include in the apk
*/
def androidLibsClassesJarMetaInf: T[Seq[PathRef]] = Task {
// ^ not the best name for the method, but this is to distinguish between META-INF of aar and META-INF
// of classes.jar included in aar
compileClasspath()
androidPackagedDeps()
.filter(ref =>
ref.path.ext == "jar" &&
ref != androidSdkModule().androidJarPath()
Expand Down Expand Up @@ -178,7 +180,6 @@ trait AndroidAppModule extends AndroidModule { outer =>
}
})
.map(PathRef(_))
.toSeq
}

/**
Expand All @@ -189,7 +190,7 @@ trait AndroidAppModule extends AndroidModule { outer =>
def androidPackageableExtraFiles: T[Seq[AndroidPackageableExtraFile]] =
Task { Seq.empty[AndroidPackageableExtraFile] }

def androidPackageMetaInfoFiles: T[Seq[AndroidPackageableExtraFile]] = Task {
def androidPackagedMetaInfFiles: T[Seq[AndroidPackageableExtraFile]] = Task {
def metaInfRoot(p: os.Path): os.Path = {
var current = p
while (!current.endsWith(os.rel / "META-INF")) {
Expand Down Expand Up @@ -239,7 +240,7 @@ trait AndroidAppModule extends AndroidModule { outer =>
(androidPackageableExtraFile.source.path, androidPackageableExtraFile.destination.asSubPath)
)

val metaInf = androidPackageMetaInfoFiles().map(asZipSource)
val metaInf = androidPackagedMetaInfFiles().map(asZipSource)

val nativeDeps = androidPackageableNativeDeps().map(asZipSource)

Expand Down Expand Up @@ -894,9 +895,6 @@ trait AndroidAppModule extends AndroidModule { outer =>

override def androidIsDebug: T[Boolean] = Task { true }

override def moduleDeps: Seq[JavaModule] = Seq.empty
override def compileModuleDeps: Seq[JavaModule] = Seq(outer)

override def resolutionParams: Task[ResolutionParams] = Task.Anon(outer.resolutionParams())

override def androidApplicationId: String = s"${outer.androidApplicationId}.test"
Expand Down Expand Up @@ -962,7 +960,7 @@ trait AndroidAppModule extends AndroidModule { outer =>
}

private def androidxTestManifests: Task[Seq[PathRef]] = Task {
androidUnpackArchives().flatMap {
androidUnpackRunArchives().flatMap {
unpackedArchive =>
unpackedArchive.manifest.map(_.path)
}.filter {
Expand Down Expand Up @@ -1040,8 +1038,8 @@ trait AndroidAppModule extends AndroidModule { outer =>
val device = androidTestInstall().apply()

val instrumentOutput = os.proc(
(
androidSdkModule().adbExe().path,
Seq(
androidSdkModule().adbExe().path.toString,
"-s",
device,
"shell",
Expand Down Expand Up @@ -1084,10 +1082,6 @@ trait AndroidAppModule extends AndroidModule { outer =>
.map(PathRef(_))
}

override def androidPackagedDeps: T[Seq[PathRef]] = Task {
androidResolvedRunMvnDeps()
}

/**
* The instrumented tests are packaged with testClasspath which already contains the
* user compiled classes
Expand Down
Loading
Loading