Создание моего первого приложения Kotlin, которое имеет премиальную функцию.
Мое приложение не будет компилироваться с productdetailslist.firstornull (): ** нерешенная ссылка 'Firstornull'. ** Я могу настроить его как частную функцию, чтобы остановить ошибку и компиляцию, все еще не вернет. Рабочие обходные данные оценены. < /p>
Что я сделал: < /strong>
Настройка тестирования в игре.
Отстал в Интернете.
спросил различные ais.
очищен и недействительный /перестроенный Caches.
deleted build. /> Протестировал приложение, используя эмулятор с поддержкой PLAY в Android Studio, и оно успешно подключается к сервису выставления счетов, но отчеты отладчиков Детали продукта недоступны. < /strong> также эмулятор приложения показывает ошибку на экране. < /p>
Details:
build.gradle app important bits
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.1.0"
implementation "org.jetbrains.kotlin:kotlin-stdlib:2.1.0"
build.gradle project important bits
dependencies classpath 'com.android.tools.build:gradle:8.12.3'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:2.1.0"
plugins
id 'com.android.application' version '8.12.3' apply false
id 'org.jetbrains.kotlin.android' version '2.1.0' apply false
id("org.jetbrains.kotlin.plugin.compose") version "2.1.0" apply false
Проблемная функция:
private fun loadProductDetails() {
val productList = listOf(
QueryProductDetailsParams.Product.newBuilder()
.setProductId(PRODUCT_ID)
.setProductType(BillingClient.ProductType.INAPP)
.build()
)
val params = QueryProductDetailsParams.newBuilder()
.setProductList(productList)
.build()
billingClient.queryProductDetailsAsync(params) { billingResult, productDetailsList ->
if (billingResult.responseCode == BillingClient.BillingResponseCode.OK) {
// Safe call + Kotlin extension available on java.util.List
val firstProduct: ProductDetails? = productDetailsList.firstOrNull()
_productDetails.value = firstProduct
Log.d(TAG, "Product details loaded: ${if (firstProduct != null) "1" else "0"} products")
} else {
Log.e(TAG, "Failed to load product details: ${billingResult.debugMessage}")
_purchaseState.value = PurchaseState.Error("Product details not available")
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/797 ... firstornul