MainActivity в проекте в Android Studio не видит firebase. Выдает ошибку "Unresolved reference 'firebase'."
В MainActivity.kt выдается следующий список ошибок:
- Unresolved reference 'firebase'. line 12-13
- Unresolved reference 'DatabaseReference'. line 21
- Unresolved reference 'FirebaseDatabase'. line 38
- Unresolved reference 'push'. line 73
- Unresolved reference 'addOnSuccessListener'. line 74
- cannot infer type для этого параметра. Specify it explicitly. line 77
- Unresolved reference 'message'. line 79
Все dependencies в build.gradle.kts подключены. Я уже просто не знаю, что может быть причиной. И кэш очищал уже но ничего не помогает
MainActivity.kt:
package dev.ivankov.lab3
import android.content.Context
import android.hardware.Sensor
import android.hardware.SensorEvent
import android.hardware.SensorEventListener
import android.hardware.SensorManager
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.TextView
import android.widget.Toast
import com.google.firebase.database.DatabaseReference
import com.google.firebase.database.FirebaseDatabase
import kotlin.math.pow
import kotlin.math.sqrt
class MainActivity : AppCompatActivity(), SensorEventListener {
private lateinit var sensorManager: SensorManager
private var magneticField: Sensor? = null
private lateinit var ref: DatabaseReference
private lateinit var magneticText: TextView
private lateinit var statusText: TextView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
magneticText = findViewById(R.id.magneticText)
statusText = findViewById(R.id.statusText)
// Підключення до сенсора
sensorManager = getSystemService(Context.SENSOR_SERVICE) as SensorManager
magneticField = sensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD)
// Firebase Database
ref = FirebaseDatabase.getInstance().getReference("magnetic_data")
}
override fun onResume() {
super.onResume()
magneticField?.also {
sensorManager.registerListener(this, it, SensorManager.SENSOR_DELAY_NORMAL)
}
}
override fun onPause() {
super.onPause()
sensorManager.unregisterListener(this)
}
override fun onSensorChanged(event: SensorEvent?) {
event?.let {
val magnitude = sqrt(
it.values[0].pow(2) + it.values[1].pow(2) + it.values[2].pow(2)
)
magneticText.text = "Magnetic field: %.2f µT".format(magnitude)
if (magnitude > 70) { // 70 — порогове значення аномалії
sendToFirebase(magnitude)
}
}
}
private fun sendToFirebase(value: Float) {
val data: Map<String, Any> = mapOf(
"value" to value,
"timestamp" to System.currentTimeMillis()
)
ref.push().setValue(data)
.addOnSuccessListener {
statusText.text = "Data sent: $value µT"
}
.addOnFailureListener { e ->
statusText.text = "Error sending data"
Toast.makeText(this, "Error: ${e.message}", Toast.LENGTH_SHORT).show()
}
}
override fun onAccuracyChanged(sensor: Sensor?, accuracy: Int) {}
}
build.gradle.kts(app):
plugins {
id("com.android.application")
id("org.jetbrains.kotlin.android")
id("com.google.gms.google-services")
}
android {
namespace = "dev.ivankov.lab3"
compileSdk = 36
defaultConfig {
applicationId = "dev.ivankov.lab3"
minSdk = 24
targetSdk = 36
versionCode = 1
versionName = "1.0"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
isMinifyEnabled = false
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
kotlinOptions {
jvmTarget = "11"
}
}
dependencies {
implementation("androidx.core:core-ktx:1.12.0")
implementation("androidx.appcompat:appcompat:1.7.0")
implementation("com.google.android.material:material:1.11.0")
testImplementation("junit:junit:4.13.2")
androidTestImplementation("androidx.test.ext:junit:1.1.7")
androidTestImplementation("androidx.test.espresso:espresso-core:3.6.0")
// Firebase
implementation(platform("com.google.firebase:firebase-bom:34.4.0"))
implementation("com.google.firebase:firebase-database-ktx")
}
build.gradle(project):
buildscript {
repositories {
google()
mavenCentral()
}
dependencies {
classpath("com.android.tools.build:gradle:8.13.0")
classpath("com.google.gms:google-services:4.4.4")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.0")
}
}
settings.graddle.kts:
pluginManagement {
repositories {
google()
mavenCentral()
gradlePluginPortal()
}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
}
}
rootProject.name = "Lab3"
include(":app")
Ответы (1 шт):
Автор решения: DedMoroz
→ Ссылка
Ошибка исчезает если заменить зависимость на:
implementation(libs.firebase.database)
[versions]
firebaseDatabase = "22.0.1"
[libraries]
firebase-database = { module = "com.google.firebase:firebase-database", version.ref = "firebaseDatabase" }
или
implementation(libs.firebase.database.ktx)
[versions]
firebaseDatabaseKtx = "21.0.0"
[libraries]
firebase-database-ktx = { module = "com.google.firebase:firebase-database-ktx", version.ref = "firebaseDatabaseKtx" }