Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android “什么是”呢;预期成员声明“;什么时候语法正确?_Android_Android Studio_Kotlin_Compiler Errors - Fatal编程技术网

Android “什么是”呢;预期成员声明“;什么时候语法正确?

Android “什么是”呢;预期成员声明“;什么时候语法正确?,android,android-studio,kotlin,compiler-errors,Android,Android Studio,Kotlin,Compiler Errors,因此,我想用Kotlin为我的Android Studio项目实现一个简单的数据库处理程序类。当我的目光转向我的“哪怕是kotlin”开发伙伴时,我几乎不知道这个时髦的选择会让我陷入漫长的诅咒。 我决定首先使用SQLiteOpenHelper类复制粘贴数据库助手的 很自然,我开始犯这个不合理的错误 对于每个结束括号},使用3种不同的方法,包含看似完全有效的语法。 当然,我花了一天多的时间检查了每一个恼人的Gradle build属性,这些属性似乎只是为了增加发生故障的可能性,就好像它是一个设

因此,我想用Kotlin为我的Android Studio项目实现一个简单的数据库处理程序类。当我的目光转向我的“哪怕是kotlin”开发伙伴时,我几乎不知道这个时髦的选择会让我陷入漫长的诅咒。
我决定首先使用
SQLiteOpenHelper
类复制粘贴数据库助手的

很自然,我开始犯这个不合理的错误

对于每个结束括号
}
,使用3种不同的方法,包含看似完全有效的语法。

当然,我花了一天多的时间检查了每一个恼人的Gradle build属性,这些属性似乎只是为了增加发生故障的可能性,就好像它是一个设计完美的开发者地狱般的Limbo build系统。但是每一次小小的检查都是徒劳的,因为我没有生成错误,而且“预期成员”错误不断出现

然而,我决定不退出,甚至尝试更改我的实现,以使用更友好的Kotlin
anko.db
route,完整代码如下

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)
    }

}
按照开发人员的神谕,没有任何变化。每次我点击
Build
时,我都被语法检查器的暗中保证所愚弄,因为编译器否认了我的救赎。更令人惊讶的是。即使我注释掉被重写方法的整个主体,错误仍然存在


在这一点上,我是如此的绝望,以至于我跌入了深渊的最低谷:拒绝自我,寻求帮助。

对于那些没有勇气见证这一过程的人,TLDR最后

答案是我自己给出的,在经历了三个无休止的时代(见:天)后,在这个无法构建的地狱般的维度上,凌晨3点,一瓶格兰菲迪威士忌在黑暗中被我妖魔化的键盘敲击声所加入

当我陷入疯狂时,通常的怀疑已经被一次又一次地抛弃了,现在相当确定,即使有人在哪里复制我的确切代码,他们甚至可能不会得到这个错误

我甚至试图降低Kotlin本身的级别,妄想它的编译器中会出现一个bug,并不断发出“期待声明”的咕哝声……
在最后一次疯狂的尝试中,我甚至尝试将我的代码导入到IDE的另一个地狱般的机器中,只是想看看那些虚构的消息是否会跟着我,在Intellij IDEA

经过一个多小时的折磨,新项目的构建文件和其他令人毛骨悚然的属性发生了一些小问题。。。是的。

我正要放弃,当我在Intellij的语法检查器上发现这个奇怪、不熟悉的符号时: <代码>在文件中间找到字节顺序标记

儿子。属于A.工作台。

现在,在我这段令人难以置信的痛苦旅程中,就像生活在极乐天堂般的“键入按你阅读方式解析的代码”区域的许多其他开发人员一样,我不知道什么是BOM

然而,天体观念甚至给了我们关于维基百科链接的被禁止的、黑暗的知识,我愚蠢地天真地遵循了维基百科链接,看到了人类本不应该看到的宇宙中令人发狂的、奇怪的碎片……

什么是叉子。

我的手指颤抖着,开始在发烧的高潮中移动。我听到自己咯咯地笑着,我沉浸在最后一个非理性希望的虚幻疯狂中

我删除了这3种方法。在邪恶的杀戮狂乱中清除了他们,并凝视着空荡荡的班级,摆脱了无形的、令人作呕的感染

Build*单击*成功。


用手重写了每一种方法,没有复制粘贴或触摸任何受恶魔感染的邪恶文本,同时听着恶魔般的、超凡脱俗的“Dethklok唤醒”召唤。就这样。成功了。我自由了,一手拿着威士忌,一手拿着眼泪,升到了极乐世界。
然而,空虚和失望。因为狡猾的阴影不是一个有形的敌人,而是一种短暂的力量,隐现在自我内部……
有了这个答案,我希望没有人会像我一样面对同样的错误。至少不是毫无准备


TLDR:有一个字符导致了错误。Intellij澄清了原因,而Android Studio没有。手动删除并重新编写有问题的部分,无需复制粘贴任何内容,效果良好


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

当你写下一部小说时,请告诉我。。。我会一直读到最后一点。:-)也可以是一个不间断的空格,或者其他一些不可见的字符