首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EOFException试图使用Anko verticalLayout

EOFException试图使用Anko verticalLayout
EN

Stack Overflow用户
提问于 2019-08-08 09:25:50
回答 1查看 103关注 0票数 2

教程之后,通过在应用程序模块中添加build.gradle,导入了Anko:

代码语言:javascript
复制
implementation "org.jetbrains.anko:anko-sdk25:0.10.5"
implementation "org.jetbrains.anko:anko-appcompat-v7:0.10.5"

我试一下这个例子:

代码语言:javascript
复制
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import org.jetbrains.anko.*

class StartActivity : AppCompatActivity(){
    override fun onCreate(savedInstanceState: Bundle?) {

        verticalLayout {
            editText {
                hint = "Enter your name"
            }
            button("ECHO"){
                setOnClickListener {
                    toast("Button clicked")
                }
            }
        }
    }
}

由于某些原因,` `import org.jetbras.anko.*变得很棒,而AndroidStudio通过将其隐藏为红色显示了verticalLayout的一个错误。当我悬停在它上面时,我得到了一个错误:

代码语言:javascript
复制
java.io.EOFException
    at java.io.DataInputStream.readInt(DataInputStream.java:392)
    at org.jetbrains.kotlin.metadata.builtins.BuiltInsBinaryVersion$Companion.readFrom(BuiltInsBinaryVersion.kt:29)
    at org.jetbrains.kotlin.serialization.deserialization.MetadataPackageFragment.readProto(MetadataPackageFragmentProvider.kt:136)
    at org.jetbrains.kotlin.serialization.deserialization.MetadataPackageFragment.computeMemberScope(MetadataPackageFragmentProvider.kt:105)
    at org.jetbrains.kotlin.serialization.deserialization.MetadataPackageFragment.access$computeMemberScope(MetadataPackageFragmentProvider.kt:72)
    at org.jetbrains.kotlin.serialization.deserialization.MetadataPackageFragment$memberScope$1.invoke(MetadataPackageFragmentProvider.kt:96)
    at org.jetbrains.kotlin.serialization.deserialization.MetadataPackageFragment$memberScope$1.invoke(MetadataPackageFragmentProvider.kt:72)
    at org.jetbrains.kotlin.storage.LockBasedStorageManager$LockBasedLazyValue.invoke(LockBasedStorageManager.java:346)
    at org.jetbrains.kotlin.storage.LockBasedStorageManager$LockBasedNotNullLazyValue.invoke(LockBasedStorageManager.java:402)
    at org.jetbrains.kotlin.serialization.deserialization.MetadataPackageFragment.getMemberScope(MetadataPackageFragmentProvider.kt:128)
    at org.jetbrains.kotlin.descriptors.impl.LazyPackageViewDescriptorImpl$memberScope$1.invoke(LazyPackageViewDescriptorImpl.kt:46)
    at org.jetbrains.kotlin.descriptors.impl.LazyPackageViewDescriptorImpl$memberScope$1.invoke(LazyPackageViewDescriptorImpl.kt:30)
    at org.jetbrains.kotlin.storage.LockBasedStorageManager$LockBasedLazyValue.invoke(LockBasedStorageManager.java:346)
    at org.jetbrains.kotlin.storage.LockBasedStorageManager$LockBasedNotNullLazyValue.invoke(LockBasedStorageManager.java:402)
    at org.jetbrains.kotlin.resolve.scopes.LazyScopeAdapter.getWorkerScope(LazyScopeAdapter.kt:23)
    at org.jetbrains.kotlin.resolve.scopes.AbstractScopeAdapter.getContributedClassifier(AbstractScopeAdapter.kt:44)
    at org.jetbrains.kotlin.descriptors.FindClassInModuleKt.fin...

我必须做什么,这样就不会再抛出这个错误了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-15 05:54:14

尝试将您的导入更改为:

代码语言:javascript
复制
import org.jetbrains.anko.button
import org.jetbrains.anko.editText
import org.jetbrains.anko.toast
import org.jetbrains.anko.verticalLayout

这对我来说很好:

它还编译和运行:(删除一些工具栏,因为其中有一个项目名称)

下面是我的依赖项列表,这是一个从头开始的全新项目,所以一切都是默认的:

代码语言:javascript
复制
dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'androidx.appcompat:appcompat:1.0.2'
    implementation 'androidx.core:core-ktx:1.0.2'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    testImplementation 'junit:junit:4.12'
    implementation "org.jetbrains.anko:anko-sdk25:0.10.5"
    implementation "org.jetbrains.anko:anko-appcompat-v7:0.10.5"
    androidTestImplementation 'androidx.test:runner:1.2.0'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
}

甚至把它更改为你发布的内容,也同样适用于我:

可能与您的kotlin版本或android studio bug有关,请尝试更新IDE,对于我正在使用的默认项目

代码语言:javascript
复制
Gradle: 3.4.0
Kotlin: 1.3.31

这个版本的android工作室(希望这会有所帮助):

代码语言:javascript
复制
Android Studio 3.4
Build #AI-183.5429.30.34.5452501, built on April 10, 2019
JRE: 1.8.0_152-release-1343-b01 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
macOS 10.14.6

附带注意:我意识到OP没有setContentView,所以我想我也必须尝试一下,但是:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57409310

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档