gpt4 book ai didi

android - 语法正确时 "expected member declaration"是什么?

转载 作者:行者123 更新时间:2023-11-29 16:33:23 38 4
gpt4 key购买 nike

因此,我想使用 Kotlin 为我的 Android Studio 项目实现一个简单的数据库处理程序类。当我对我的“kotlin 甚至是什么”开发伙伴翻白眼时,我几乎不知道这个时髦的选择会让我陷入漫长的诅咒。
我决定先复制粘贴 code Google suggests对于使用 SQLiteOpenHelper 类的 DB Helper。

很自然地,我开始遇到这个不合理的错误
enter image description here
3 种不同方法 中的每个右括号 } 包含看起来完全有效的语法。
enter image description here

当然,我花了一天多的时间检查每一个烦人的 Gradle 构建属性,这些属性似乎只是为了增加出现问题的可能性,就好像它是来自 hell 的完美设计的开发人员-Limbo 构建系统。但是每一次小小的检查都无济于事,因为我没有构建错误,而且“期待成员”错误不断出现。

但是我决定不退出,我什至尝试更改我的实现以使用对 Kotlin 更友好的 anko.db 路由,完整代码如下。

package com.example.john.myapplication

import android.content.Context
import android.database.sqlite.SQLiteDatabase
import org.jetbrains.anko.db.*

class DBHandler(context: Context) : ManagedSQLiteOpenHelper(context, "POIEncounters", null, 1) {

override fun onCreate(db: SQLiteDatabase?) {
db?.createTable("Encounter", true, "id" to INTEGER + PRIMARY_KEY + UNIQUE, "Name" to TEXT)
}

override fun onUpgrade(db: SQLiteDatabase?, oldVersion: Int, newVersion: Int) {
db?.dropTable("Encounter", true)
}

override fun onDowngrade(db: SQLiteDatabase?, oldVersion: Int, newVersion: Int) {
onUpgrade(db, oldVersion, newVersion)
}

}

正如 Divine Order 在 Developer Limbo 中规定的那样,根本没有没有变化。每次我单击 Build 时,我都被语法检查器的卑鄙保证所愚弄,因为编译器拒绝了我的救赎。更令人惊奇的是。错误仍然存​​在即使我注释掉覆盖方法的整个主体

在这一点上,我已经绝望到了万丈深渊的最低点:拒绝我的 self 并寻求帮助。

最佳答案

对于那些没有足够勇气见证这个过程的人,TLDR 在最后。

答案是我自己给出的,在这个无法 build 的 hell 维度中经历了 3 个无尽的纪元(see: days)之后,我在凌晨 3 点写下了唯一的一瓶 Glenfiddich 威士忌酒黑暗被我恶魔化的键盘敲击声所笼罩。

easy-to-miss spelling errors的常见嫌疑人| , invalid constructor usage当我陷入疯狂时,它被一遍又一遍地丢弃,现在可以肯定的是,即使有人复制我的确切代码,他们甚至可能不会得到这个错误。

我什至尝试过降级 Kotlin 本身,妄想它的编译器中的错误会导致所有这些持续不断的提示“期待声明”...
在最后一次疯狂的尝试中,我什至尝试将我的代码导入到 IDE 的另一个 hell 般的阴谋中,只是为了看看伪造的消息是否会跟着我到那里,在 Intellij IDEA...

经过一个小时的折磨来调整新项目的构建文件和其他导致小问题的可怕属性......他们做到了。
enter image description here

我正要放弃,当我在 Intellij 的语法检查器上发现这个奇怪的、不熟悉的标志时: Found byte-order-mark in the middle of a file <...> enter image description here

儿子。的。 A. 长凳。

现在,在我的旅程中这个令人难以置信的痛苦部分,就像生活在“按您阅读的方式解析的代码”的幸福天堂般的许多其他开发人员一样,我有没有 fork 的想法什么是BOM

然而,天体的 IDEA 甚至为我们提供了维基百科链接的禁忌、黑暗知识,我出于愚蠢的天真遵循了该链接,以看到宇宙中令人发狂、好奇的 fragment ,人类本不应该看到它......< br/> enter image description here

什么 fork 。

我的手指颤抖着开始高潮。当我沉浸在最后的非理性希望的不真实的疯狂中时,我听到自己的咯咯笑声......

我删除了 3 个方法。以一种邪恶的、杀灭功能的狂热清除了他们,凝视着空荡荡的类(class),没有看不见的、令人作呕的感染。

Build. *click* Success.


亲手重写了每一个方法,没有复制粘贴,也没有接触任何被魔鬼感染的卑鄙文字,同时聆听恶魔般的、超凡脱俗的“Dethklok Awaken”召唤.就是这样。有效。我自由了,升入极乐世界,一手拿着威士忌,眼泪滴落到下方的火焰中。
然而,空虚和失望。因为狡猾的阴影不是有形的敌人,而是一种短暂的力量,隐约出现在 self 中……
有了这个答案,我希望没有人会遇到我犯过的同样错误。至少不是毫无准备。


TLDR:有一个 BOM导致错误的字符。 Intellij 澄清了原因,而 Android Studio 没有。在没有复制粘贴任何内容的情况下,手动删除并重写了有问题的部分,并且成功了。

结语:我们每天都离 ASCII 的光芒越来越远。

关于android - 语法正确时 "expected member declaration"是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53357784/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com