簡體   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