繁体   English   中英

无法加载由onCreate()导致的下一个活动应用崩溃

[英]Unable to load next activity app crash caused by onCreate()

我的应用程序有一个仪表板,可链接到多个活动。 除了链接到个人资料活动的一个按钮以外,其他所有按钮均正常工作。 我一直在寻找解决方案将近一个星期,并且仍然是同一问题。 单击该按钮后,应用程序立即崩溃。 以下是我的代码:

content_profiles_wards.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.NestedScrollView 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"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorTransparentWhite"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="info.sahms.sahms.profiles_wards"
tools:showIn="@layout/activity_profiles_wards">


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

        <info.sahms.sahms.NonScrollListView
            android:id="@+id/listview"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="@dimen/_20sdp"
            android:layout_marginRight="@dimen/_20sdp"
            android:layout_marginTop="@dimen/_20sdp"
            android:clickable="true"
            android:background="@android:color/transparent"
            android:divider="@android:color/transparent"
            android:dividerHeight="@dimen/_10sdp">

        </info.sahms.sahms.NonScrollListView>

</ScrollView>


</android.support.v4.widget.NestedScrollView>

xml文件

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout 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"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context="info.sahms.sahms.profiles_wards">

<android.support.design.widget.AppBarLayout
    android:id="@+id/app_bar"
    android:layout_width="match_parent"
    android:layout_height="@dimen/app_bar_height"
    android:fitsSystemWindows="true"
    android:background="@color/colorPrimaryDark"
    android:theme="@style/AppTheme.AppBarOverlay">

    <android.support.design.widget.CollapsingToolbarLayout
        android:id="@+id/toolbar_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true"
        app:contentScrim="@color/yellow"
        app:layout_scrollFlags="scroll|exitUntilCollapsed"
        app:toolbarId="@+id/toolbar">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            app:layout_collapseMode="pin"
            app:popupTheme="@style/AppTheme.PopupOverlay" />

    </android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>

<include layout="@layout/content_profiles_wards" />

<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="@dimen/fab_margin"
    app:layout_anchor="@id/app_bar"
    app:layout_anchorGravity="bottom|end"
    android:background="@color/yellow"
    android:backgroundTint="@color/yellow"
    android:src="@drawable/ic_face_black_24dp"
     />

</android.support.design.widget.CoordinatorLayout>

这是android studio的错误

`E/AndroidRuntime: FATAL EXCEPTION: main
Process: info.sahms.sahms, PID: 8033
java.lang.RuntimeException: Unable to start activity ComponentInfo{info.sahms.sahms/info.sahms.sahms.profiles_wards}: android.view.InflateException: Binary XML file line #0: Binary XML file line #0: Error inflating class android.support.design.widget.FloatingActionButton
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2417)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2477)
    at android.app.ActivityThread.-wrap11(ActivityThread.java)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1345)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:148)
    at android.app.ActivityThread.main(ActivityThread.java:5452)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:781)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:671)
 Caused by: android.view.InflateException: Binary XML file line #0: Binary XML file line #0: Error inflating class android.support.design.widget.FloatingActionButton
    at android.view.LayoutInflater.inflate(LayoutInflater.java:539)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
    at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287)
    at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
    at info.sahms.sahms.profiles_wards.onCreate(profiles_wards.java:63)
    at android.app.Activity.performCreate(Activity.java:6305)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1110)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2370)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2477) 
    at android.app.ActivityThread.-wrap11(ActivityThread.java) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1345) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:148) 
    at android.app.ActivityThread.main(ActivityThread.java:5452) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:781) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:671) 
 Caused by: android.view.InflateException: Binary XML file line #0: Error inflating class android.support.design.widget.FloatingActionButton
    at android.view.LayoutInflater.createView(LayoutInflater.java:645)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:764)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:835)
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:374) 
    at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287) 
    at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139) 
    at info.sahms.sahms.profiles_wards.onCreate(profiles_wards.java:63) 
    at android.app.Activity.performCreate(Activity.java:6305) 
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1110) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2370) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2477) 
    at android.app.ActivityThread.-wrap11(ActivityThread.java) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1345) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:148) 
    at android.app.ActivityThread.main(ActivityThread.java:5452) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:781) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:671) 
 Caused by: java.lang.reflect.InvocationTargetException
    at java.lang.reflect.Constructor.newInstance(Native Method)
    at android.view.LayoutInflater.createView(LayoutInflater.java:619)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:764) 
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:835) 
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:515) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:374) 
    at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287) 
    at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139) 
    at info.sahms.sahms.profiles_wards.onCreate(profiles_wards.java:63) 
    at android.app.Activity.performCreate(Activity.java:6305) 
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1110) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2370) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2477) 
    at android.app.ActivityThread.-wrap11(ActivityThread.java) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1345) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:148) 
    at android.app.ActivityThread.main(ActivityThread.java:5452) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:781) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:671) 
 Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.graphics.drawable.Drawable android.graphics.drawable.Drawable$ConstantState.newDrawable()' on a null object reference
    at android.graphics.drawable.LayerDrawable$ChildDrawable.<init>(LayerDrawable.java:1724)
    at android.graphics.drawable.LayerDrawable$LayerState.<init>(LayerDrawable.java:1793)
    at android.graphics.drawable.RippleDrawable$RippleState.<init>(RippleDrawable.java:982)
    at android.graphics.drawable.RippleDrawable.createConstantState(RippleDrawable.java:973)
    at android.graphics.drawable.RippleDrawable.createConstantState(RippleDrawable.java:972)
    at android.graphics.drawable.LayerDrawable.mutate(LayerDrawable.java:1653)
    at android.graphics.drawable.RippleDrawable.mutate(RippleDrawable.java:959)
    at android.view.View.applyBackgroundTint(View.java:17432)
    at android.view.View.setBackgroundDrawable(View.java:17308)
    at android.support.design.widget.FloatingActionButton.access$001(FloatingActionButton.java:68)
    at android.support.design.widget.FloatingActionButton$ShadowDelegateImpl.setBackgroundDrawable(FloatingActionButton.java:824)
    at android.support.design.widget.FloatingActionButtonLollipop.setBackgroundDrawable(FloatingActionButtonLollipop.java:73)
    at android.support.design.widget.FloatingActionButton.<init>(FloatingActionButton.java:179)
    at android.support.design.widget.FloatingActionButton.<init>(FloatingActionButton.java:151)`

更换

android:backgroundTint="@color/yellow" 

app:backgroundTint="@color/yellow"

由于android:backgroundTint在API版本21以下无法正常工作,因此您需要改用app:backgroundTint

<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="@dimen/fab_margin"
    app:layout_anchor="@id/app_bar"
    app:layout_anchorGravity="bottom|end"
    android:background="@color/yellow"
    app:backgroundTint="@color/yellow"
    android:src="@drawable/ic_face_black_24dp"
     />

可能对您有帮助

暂无
暂无

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

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