尝试实现滚动条时,我的应用程序崩溃了

时间:2018-07-03 15:03:48

标签: android crash android-emulator

我的应用程序有问题,我最近开始在Android Studio中进行编码,但遇到了无法解决的问题。 因此,我有一个包含4个活动的主页,当我在模拟器中运行程序时,该应用会打开,其中3个活动可以正常运行,但是当我单击以打开活动时,尝试实现滚动条的那个活动就会崩溃。

代码如下:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="5dp"
    android:paddingRight="5dp"
    android:paddingBottom="5dp"
    android:paddingTop="5dp" 
    tools:context=".coffeeGrowth" >

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">

                <TextView
                    android:id="@+id/textView"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:keepScreenOn="true"
                    android:text="@string/large_text"
                    android:textColor="#008000"
                    android:textSize="30sp"
                    android:textStyle="italic" />

        </RelativeLayout>


</ScrollView>

和崩溃:

  

07/03 16:54:21:启动应用程序$ adb install-multiple -r -t -p   com.example.android.coffeeknowledge C:\ Users \ Daud   Jawad \ CoffeeKnowledge \ app \ build \ intermediates \ instant-run-apk \ debug \ app-debug.apk   安装已拆分的APK $ $ adb shell am start -n   “ com.example.android.coffeeknowledge / com.example.android.coffeeknowledge.MainActivity”   -a android.intent.action.MAIN -c android.intent.category.LAUNCHER客户端尚未准备好..正在等待过程在线连接到   设备模拟器5554上捕获进程10196并显示logcat   来自应用程序的消息。可以在   “调试器”设置页面的“ Logcat输出”部分。 D /:   HostConnection :: get()建立新的主机连接0x8aa1c1c0,tid   10196 D /:HostConnection :: get()建立新的主机连接   0x8aa1c540,tid 10218 I / OpenGLRenderer:初始化的EGL,版本1.4   D / OpenGLRenderer:交换行为1 W / OpenGLRenderer:选择失败   使用EGL_SWAP_BEHAVIOR_PRESERVED进行配置,无需重试即可...   D / OpenGLRenderer:交换行为0 D / EGL_emulation:eglCreateContext:   0x8a9fe920:maj 2分钟0 rcv 2 D / EGL_emulation:eglMakeCurrent:   0x8a9fe920:版本2 0(tinfo 0x99d98910)W / art:Android 4.1之前的版本,   方法int   android.support.v7.widget.DropDownListView.lookForSelectablePosition(int,   布尔值)会错误地覆盖package-private方法   在android.widget.ListView中D / EGL_emulation:eglMakeCurrent:   0x8a9fe920:版本2 0(tinfo 0x99d98910)D / Android运行时:正在关闭   VM E / AndroidRuntime: 致命异常:main                     流程:com.example.android.coffeeknowledge,PID:10196                     java.lang.RuntimeException:无法启动活动ComponentInfo {com.example.android.coffeeknowledge / com.example.android.coffeeknowledge.coffeeGrowth}:   java.lang.NullPointerException:尝试调用虚拟方法'void   android.view.View.setOnClickListener(android.view.View $ OnClickListener)'   在空对象引用上                         在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2665)                         在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)                         在android.app.ActivityThread.-wrap12(ActivityThread.java)                         在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1477)                         在android.os.Handler.dispatchMessage(Handler.java:102)                         在android.os.Looper.loop(Looper.java:154)                         在android.app.ActivityThread.main(ActivityThread.java:6119)                         在java.lang.reflect.Method.invoke(本机方法)                         在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:886)                         在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)                      原因:java.lang.NullPointerException:尝试调用虚拟方法'void   android.view.View.setOnClickListener(android.view.View $ OnClickListener)'   在空对象引用上                         在com.example.android.coffeeknowledge.coffeeGrowth.onCreate(coffeeGrowth.java:98)                         在android.app.Activity.performCreate(Activity.java:6679)                         在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)                         在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2618)                         在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)                         在android.app.ActivityThread.-wrap12(ActivityThread.java)                         在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1477)                         在android.os.Handler.dispatchMessage(Handler.java:102)                         在android.os.Looper.loop(Looper.java:154)                         在android.app.ActivityThread.main(ActivityThread.java:6119)                         在java.lang.reflect.Method.invoke(本机方法)                         在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:886)                         在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)   应用已终止。

谢谢你, 达德。

1 个答案:

答案 0 :(得分:0)

您的XML错误,我的朋友。

ScrollView不是布局选项。它的看法。因此,您需要在Scrollview周围包装Layout。请记住,一个ScrollView只能有一个孩子。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="5dp"
    android:paddingRight="5dp"
    android:paddingBottom="5dp"
    android:paddingTop="5dp" tools:context=".coffeeGrowth" >

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent">


    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:keepScreenOn="true"
        android:text="@string/large_text"
        android:textColor="#008000"
        android:textSize="30sp"
        android:textStyle="italic" />

   </ScrollView>

</RelativeLayout>