gpt4 book ai didi

android - getView()在getDrawable()中崩溃

转载 作者:行者123 更新时间:2023-12-03 17:06:00 25 4
gpt4 key购买 nike

当OS调用我的适配器之一的getView()时,我收到许多奇怪的关于应用程序崩溃的报告(使用应用程序兼容库)。在Android 4.x下使用ResourceNotFoundFound或在Android 5.x下使用RuntimeException或在Android 6.x下使用UnsupportedOperationException的getDrawable()中崩溃。 getView()实际上是使用一个最简单的布局文件调用inflate()的。

调用堆栈始终是这样的:

at android.content.res.TypedArray.getDrawable (TypedArray.java)
at android.view.View.<init> (View.java:3756)
at android.view.ViewGroup.<init> (ViewGroup.java)
at android.widget.LinearLayout.<init> (LinearLayout.java)
at android.widget.LinearLayout.<init> (LinearLayout.java)
at android.widget.LinearLayout.<init> (LinearLayout.java)
at java.lang.reflect.Constructor.newInstance (Constructor.java)
at java.lang.reflect.Constructor.newInstance (Constructor.java)
at android.view.LayoutInflater.createView (LayoutInflater.java)
at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView (PhoneLayoutInflater.java)
at android.view.LayoutInflater.onCreateView (LayoutInflater.java)
at android.view.LayoutInflater.createViewFromTag (LayoutInflater.java)
at android.view.LayoutInflater.inflate (LayoutInflater.java)
at android.view.LayoutInflater.inflate (LayoutInflater.java)

at android.view.LayoutInflater.inflate (LayoutInflater.java)
at my_app.activity$adapter.getView

这是在Android 4.x和5.x上“引起”此情况的布局文件:

<LinearLayout
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">

<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textStyle="bold"/>

<TextView
android:id="@+id/summary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"/>
</LinearLayout>

<ImageButton
android:id="@+id/menu"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center"
android:background="#00000000"
android:src="@drawable/ic_menu_moreoverflow_normal_holo_dark"/>

该布局中使用的唯一可绘制对象可用于hdpi,mdpi和xhdpi。 Android为什么找不到它?顺便说一句,我不能在模拟器或运行4.x或5.x的实际设备中重现它!

任何建议将不胜感激,这是我的前4个应用崩溃,占其中90%以上!

我曾经将背景设置为@null并将其更改为#00000000无济于事。还包括主题主题属性中的drawable并具有src =“?menu_overflow”,但它没有任何改变。

最佳答案

尝试

  app:srcCompat="@drawable/ic_menu_moreoverflow_normal_holo_dark"

代替
  android:src="@drawable/ic_menu_moreoverflow_normal_holo_dark" // in your image button

更新

不要忘记使用android的 android.support.v7.widget.AppCompatImageButton而不是 ImageButton(这不会崩溃)。
  <android.support.v7.widget.AppCompatImageButton
android:id="@+id/menu"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center"
android:background="#00000000"
app:srcCompat="@drawable/ic_menu_moreoverflow_normal_holo_dark"/>

关于android - getView()在getDrawable()中崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49206947/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com