android - 无法开始主要活动
问题描述
这是我的应用程序文件。你能告诉我是什么导致我的应用程序崩溃以及可以做些什么来解决这个问题?
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)
}
}
这是strings.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>
和dimens.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,则可以编译代码。
推荐阅读
- c# - CollectionViewSource 不更新 UI
- autodesk-forge - 用于返回 SolidWorks 文件的“配置特定”属性的 API
- php - 未捕获的错误:找不到类“Google\AdsApi\Examples\AdWords\v201809\Reporting\DOMDocument”
- node.js - 构建一个 SpringBoot 2.0.5.RELEASE + Angular 5 +Spring Data + Rest 项目
- c++ - 在 C++ 中添加两个字符文字
- node.js - Google Home - 在使用 Google Home 登录并禁用“个人搜索结果”设置时,登录状态为 CANCELED
- python - 如何从 pygame 的文本框中验证我输入的密码?
- asp.net-mvc - 无法访问令牌
- c# - 将 URL 路由 Asp 更改为 PHP
- sql - SQL 按自定义的每周时间范围分组记录