Android R8, отсутствуют занятия с MacrobenchmarkAndroid

Форум для тех, кто программирует под Android
Ответить
Гость
 Android R8, отсутствуют занятия с Macrobenchmark

Сообщение Гость »

Я использовал метод Write a Macrobenchmark. Я получаю ошибки с R8. Выходы:

Код: Выделить всё

Missing classes detected while running R8. Please add the missing classes or apply additional keep rules that are generated in /Users/user/project/Core/submodule/build/outputs/mapping/release/missing_rules.txt.
Градус макробенчмарка

Код: Выделить всё

plugins {
alias(libs.plugins.android.test)
alias(libs.plugins.kotlinAndroid)
}

android {
namespace = "kz.berebank.mobile.macrobenchmark"

defaultConfig {
minSdk = libs.versions.minSdk.get().toInt()
targetSdk = libs.versions.targetSdk.get().toInt()
compileSdk = libs.versions.compileSdk.get().toInt()

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"

missingDimensionStrategy("services", "gs")
}

buildTypes {
// This benchmark buildType is used for benchmarking, and should function like your
// release build (for example, with minification on). It"s signed with a debug key
// for easy local/CI testing.
create("benchmark") {
isDebuggable = true
signingConfig = getByName("debug").signingConfig
matchingFallbacks += listOf("release")

proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
file("benchmark-rules.pro")
)
}
}

flavorDimensions += listOf("services")
productFlavors {
create("gs") { dimension = "services" }
create("hs") { dimension = "services" }
}

targetProjectPath = ":app"
experimentalProperties["android.experimental.self-instrumenting"] = true
}

dependencies {
implementation(libs.tests.androidxJunit)
implementation(libs.tests.espresso)
implementation(libs.androidx.uiautomator)
implementation(libs.androidx.benchmark.macro.junit4)
}

androidComponents {
beforeVariants(selector().all()) {
it.enable = it.buildType == "benchmark"
}
}

Я видел образец NowInAndorid и Macrobenchmark. Я тоже попробовал их способ, но все равно та же ошибка.
Кроме того, я добавил тест-rules.pro как в приложение, так и в модуль тестирования с помощью -dontobfuscate, но это не помогает.
Если я исправлю и напишу -dontwarn в proguard, он найдет другие классы с той же проблемой. И что интересно, если я напишу -keep вместо -dontwarn, я получу ту же ошибку.
Почему в релизной сборке все в порядке, но когда я запускаю тест Macrobenchmark, я получаю эту ошибку?

Подробнее здесь: https://stackoverflow.com/questions/798 ... obenchmark
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»