繁体   English   中英

无法开始主要活动

[英]Unable to start main activity

这是我的应用程序文件。 你能告诉我是什么导致我的应用程序崩溃以及可以做些什么来解决这个问题?

https://drive.google.com/open?id=1kBmPCesA-hsu44lB2ugnBF-T_2-_JZbE

这是运行选项卡显示的内容,logcat 没有显示错误。 似乎在启动 onCreate 方法时发生了错误,但我尝试在该方法之前添加一个断点。 即使这样,应用程序也会崩溃。

这是 MainActivity.kt

package com.example.aboutme

import android.content.Context
import android.os.Bundle
import android.view.View
import android.view.inputmethod.InputMethodManager
import android.widget.Button
import android.widget.EditText
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import androidx.databinding.DataBindingUtil
import com.example.aboutme.databinding.ActivityMainBinding

class MainActivity : AppCompatActivity() {

    private lateinit var binding: ActivityMainBinding

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
//        setContentView(R.layout.activity_main)

         binding = DataBindingUtil.setContentView(this, R.layout.activity_main)

//        findViewById<Button>(R.id.submit_button).setOnClickListener {
//            showName(it)
//        }

         binding.doneButton.setOnClickListener {
            addNickname(it)
         }
    }

    private fun addNickname(view:View){
        binding.apply {
            nicknameText.text = nicknameEdit.text
            invalidateAll()
            nicknameEdit.visibility = View.GONE
            doneButton.visibility = View.GONE
            nicknameText.visibility = View.VISIBLE
        }

        //Hide the keyboard.
        val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
        imm.hideSoftInputFromWindow(view.windowToken, 0)
    }
}

这是字符串。xml

<resources>
    <string name="app_name">AboutMe</string>
    <string name="name">Waleed</string>
    <string name="yellow_star">Yellow Star</string>
    <string name="bio">Lorem ipsum dolor sit amet, consectetur adipiscing elit,\n\n
        sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. \n
        Mattis nunc sed blandit libero. Quis vel eros donec ac. Tellus cras\n
        adipiscing enim eu turpis egestas. Dui id ornare arcu odio. Venenatis\n
        tellus in metus vulputate eu scelerisque felis imperdiet proin. Nulla \n
        facilisi nullam vehicula ipsum a arcu cursus. Malesuada fames ac turpis \n
        egestas maecenas. Amet commodo nulla facilisi nullam vehicula ipsum a. \n
        In mollis nunc sed id semper risus in hendrerit gravida.

    \n\n Mtellus in metus vulputate eu scelerisque felis imperdiet proin. Nulla \n
        facilisi nullam vehicula ipsum a arcu cursus. Malesuada fames ac turpis \n
        egestas maecenas. Amet commodo nulla facilisi nullam vehicula ipsum a. \n
        In mollis nunc sed id semper risus in hendrerit gravida..</string>
    <string name="hint">Enter your name here</string>
    <string name="Submit">Done</string>
</resources>

和尺寸。xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="text_size">20sp</dimen>
    <dimen name="small_padding">8dp</dimen>
    <dimen name="layout_padding">20dp</dimen>
    <item name="line_spacing" type="dimen" format="float">1.2</item>
</resources>

这是 xml 代码

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:paddingStart="@dimen/layout_padding"
        android:paddingEnd="@dimen/layout_padding">


        <TextView
            android:id="@+id/name_text"
            style="@style/name_style"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingTop="@dimen/layout_padding"
            android:text="@string/name"
            android:textAlignment="center" />

        <EditText
            android:id="@+id/nickname_edit"
            style="@style/name_style"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:autofillHints=""
            android:ems="10"
            android:hint="@string/hint"
            android:inputType="textPersonName"
            android:textAlignment="center" />

        <Button
            android:id="@+id/done_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:background="#8BC34A"
            android:shadowRadius="@dimen/layout_padding"
            android:text="@string/Submit"
            android:textAlignment="center" />

        <TextView
            android:id="@+id/nickname_text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:visibility="gone"
            tools:visibility="visible" />

        <ImageView
            android:id="@+id/star_image"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="@dimen/small_padding"
            android:contentDescription="@string/yellow_star"
            android:paddingTop="@dimen/layout_padding"
            app:srcCompat="@android:drawable/btn_star_big_on" />

        <ScrollView
            android:id="@+id/bio_scroll"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <TextView
                android:id="@+id/bio_text"
                style="@style/name_style"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:lineSpacingMultiplier="@dimen/line_spacing"
                android:text="@string/bio" />
        </ScrollView>

    </LinearLayout>

</layout>


E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.aboutme, PID: 11533
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.aboutme/com.example.aboutme.MainActivity}: android.view.InflateException: Binary XML file line #33 in com.example.aboutme:layout/activity_main: Binary XML file line #33 in com.example.aboutme:layout/activity_main: Error inflating class Button
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3333)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3477)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2043)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:216)
        at android.app.ActivityThread.main(ActivityThread.java:7464)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:549)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:955)
     Caused by: android.view.InflateException: Binary XML file line #33 in com.example.aboutme:layout/activity_main: Binary XML file line #33 in com.example.aboutme:layout/activity_main: Error inflating class Button
     Caused by: android.view.InflateException: Binary XML file line #33 in com.example.aboutme:layout/activity_main: Error inflating class Button
     Caused by: java.lang.NumberFormatException: For input string: "20.0dip"
        at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2043)
        at sun.misc.FloatingDecimal.parseFloat(FloatingDecimal.java:122)
        at java.lang.Float.parseFloat(Float.java:451)
        at android.content.res.TypedArray.getFloat(TypedArray.java:475)
        at android.widget.TextView.readTextAppearance(TextView.java:4036)
        at android.widget.TextView.<init>(TextView.java:1076)
        at android.widget.Button.<init>(Button.java:166)
        at android.widget.Button.<init>(Button.java:141)
        at androidx.appcompat.widget.AppCompatButton.<init>(AppCompatButton.java:72)
        at androidx.appcompat.widget.AppCompatButton.<init>(AppCompatButton.java:68)
        at androidx.appcompat.app.AppCompatViewInflater.createButton(AppCompatViewInflater.java:192)
        at androidx.appcompat.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:111)
        at androidx.appcompat.app.AppCompatDelegateImpl.createView(AppCompatDelegateImpl.java:1407)
        at androidx.appcompat.app.AppCompatDelegateImpl.onCreateView(AppCompatDelegateImpl.java:1457)
        at android.view.LayoutInflater.tryCreateView(LayoutInflater.java:1059)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:995)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:959)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:1121)
        at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1082)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:680)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:532)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:479)
        at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:555)
        at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:161)
        at androidx.databinding.DataBindingUtil.setContentView(DataBindingUtil.java:303)
        at androidx.databinding.DataBindingUtil.setContentView(DataBindingUtil.java:284)
        at com.example.aboutme.MainActivity.onCreate(MainActivity.kt:22)
        at android.app.Activity.performCreate(Activity.java:7990)
        at android.app.Activity.performCreate(Activity.java:7979)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3308)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3477)
E/AndroidRuntime:     at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2043)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:216)
        at android.app.ActivityThread.main(ActivityThread.java:7464)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:549)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:955)

我下载了你的项目。

在您的日志中说:

InflateException: Binary XML file line #33 in com.example.aboutme:layout/activity_main: Binary XML file line #33 in com.example.aboutme:layout/activity_main: Error inflating class Button

所以错误在于您的按钮。

确切地说,错误是属性 shadowRadius 因为您使用的是 20dp 尺寸,但 Android 文档说:

May be a floating point value, such as "1.2".

如果您将 20dp 尺寸更改为 20,那么您可以编译您的代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM