Android Studio中的错误未解析引用
我刚刚在Android studio上构建了我的第一个应用程序。一切都很好,直到几天之后,在做一些更改时,我收到了一个更新通知,并继续进行更新,但我开始得到Android Studio中的错误未解析引用,android,android-studio,kotlin,Android,Android Studio,Kotlin,我刚刚在Android studio上构建了我的第一个应用程序。一切都很好,直到几天之后,在做一些更改时,我收到了一个更新通知,并继续进行更新,但我开始得到未解决的引用错误 即使这样,应用程序也可以很好地构建和运行,但问题是,在那之后我创建的每个其他项目都会出现同样的错误 我听了好几条建议,但都没用。 我已经删除了idea,从另一个项目导入了该项目,完成了缓存失效和重启,与系统同步,与gradle同步 我目前正试图在一个新项目上使用Room,当我试图为我的数据库创建singleton时,sync
未解决的引用
错误
即使这样,应用程序也可以很好地构建和运行,但问题是,在那之后我创建的每个其他项目都会出现同样的错误
我听了好几条建议,但都没用。
我已经删除了idea,从另一个项目导入了该项目,完成了缓存失效和重启,与系统同步,与gradle同步
我目前正试图在一个新项目上使用Room,当我试图为我的数据库创建singleton时,synchronized
被标记为unresolved reference
我还注意到我的文件总是损坏的,我必须回到Git hub重新复制这些文件,即使它们在编译时没有给出错误
总之,我认为这些都是我在当前项目和以前项目中面临的问题
1.未解析的引用
以前的项目
不支持操作异常
-始终
因此,即使知道,也是没有用的
kotlinx.coroutines.internal.synchronized
读“internal”,显然是另一回事。最好的选择可能是Coroutines.Sync.Mutex
,一旦synchronized
将不再存在。该关键字在Kotlin中已被弃用
虽然它清楚地写着:
不支持操作异常
-始终
因此,即使知道,也是没有用的
kotlinx.coroutines.internal.synchronized
读“internal”,显然是另一回事。最好的选择可能是Coroutines.Sync.Mutex
,一旦synchronized
将不再存在。可能与Android Studio 4 Canary 6中的此错误有关-可能与Android Studio 4 Canary 6中的此错误有关-这是否意味着我必须将Coroutines添加到依赖项中?@Darotudeen您显然已经添加了它们。。。虽然我认为它应该在没有同步的情况下工作,因为在Java中它也可以在没有同步的情况下工作。。。但它可能抛出一个不支持的操作异常
。这个问题并没有说明您正在使用哪些Kotlin版本——更新的版本可能会抱怨——甚至不再知道。降级到某个过时的Kotlin版本应该会让人知道,但这仍然是一种次优的方法。这是否意味着我必须在依赖项中添加协同路由?@Darotudeen您显然已经添加了它们。。。虽然我认为它应该在没有同步的情况下工作,因为在Java中它也可以在没有同步的情况下工作。。。但它可能抛出一个不支持的操作异常
。这个问题并没有说明您正在使用哪些Kotlin版本——更新的版本可能会抱怨——甚至不再知道。降级到一些过时的Kotlin版本应该会让人知道,但仍然是次优的方法。
val sharedPref = activity!!.getPreferences(Context.MODE_PRIVATE)
val none = resources.getString(R.string.none)
val countries = arrayListOf<String>("Nigeria", "Zambia", "Ethiopia", "Ghana", none)
val greenWallCountries = arrayListOf<String>("Great green")
Collections.sort(countries, String.CASE_INSENSITIVE_ORDER)
val adapter = ArrayAdapter(context!!, R.layout.spinner_item, countries)
locationSpinner.adapter = adapter
locationSpinner.isEnabled = false
var chosen: String? = null
greenwallVG.setOnClickListener {
chosen = "ggw"
greenwallVG.setBackgroundColor(R.color.primaryTransparent)
countriesVG.setBackgroundColor(R.color.colorNeutral)
locationSpinner.isEnabled = false
Toast.makeText(context!!, "$chosen", Toast.LENGTH_LONG).show()
}
package com.example.contactmvvm
import android.content.Context
import androidx.room.Database
import androidx.room.Room
import androidx.room.RoomDatabase
import kotlinx.coroutines.internal.synchronized
@Database(entities = [ContactEntity::class], version = 1)
abstract class ContactDatabase : RoomDatabase() {
abstract fun getContactDao():ContactDao
companion object{
private var instance:ContactDatabase?=null
fun getInstance(context: Context) =
instance?: synchronized(this){
instance?: Room.databaseBuilder(context.applicationContext,
ContactDatabase::class.java, "contact_database")
.fallbackToDestructiveMigration()
.build()
}
}
}
package com.example.contactmvvm
import androidx.room.Entity
import androidx.room.PrimaryKey
@Entity(tableName = "contacts_table")
class ContactEntity(
val firstName:String,
val lastName:String,
val sex: String,
val address:String
) {
@PrimaryKey(autoGenerate = true)
private var id:Int = 0
}