【发布时间】:2019-08-08 00:54:16
【问题描述】:
我在创建 Button 时遇到问题。该按钮应该插入到预先存在的布局中。
我正在尝试在视频屏幕上显示一个按钮。我遇到了以下异常。这只发生在运行 Android 7 的“我的设备”上。它适用于运行 Android 8+ 的设备。我不确定这段代码可能有什么问题。任何帮助表示赞赏。提前致谢。
Caused by: java.lang.NullPointerException: Attempt to read from field 'android.animation.Animator android.animation.AnimatorSet$Node.mAnimation' on a null object reference
at android.animation.AnimatorSet.clone(AnimatorSet.java:725)
at android.animation.AnimatorSet.clone(AnimatorSet.java:682)
at android.animation.StateListAnimator.clone(StateListAnimator.java:148)
at android.animation.StateListAnimator$StateListAnimatorConstantState.newInstance(StateListAnimator.java:328)
at android.animation.StateListAnimator$StateListAnimatorConstantState.newInstance(StateListAnimator.java:327)
at android.content.res.ConstantState.newInstance(ConstantState.java:53)
at android.content.res.ConstantState.newInstance(ConstantState.java:61)
at android.content.res.ConfigurationBoundResourceCache.getInstance(ConfigurationBoundResourceCache.java:40)
at android.animation.AnimatorInflater.loadStateListAnimator(AnimatorInflater.java:163)
at android.view.View.<init>(View.java:4821)
at android.widget.TextView.<init>(TextView.java:996)
at android.widget.Button.<init>(Button.java:113)
at android.widget.Button.<init>(Button.java:106)
at android.support.v7.widget.AppCompatButton.<init>(AppCompatButton.java:71)
at android.support.v7.widget.AppCompatButton.<init>(AppCompatButton.java:67)
at android.support.v7.app.AppCompatViewInflater.createButton(AppCompatViewInflater.java:187)
at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:110)
at android.support.v7.app.AppCompatDelegateImpl.createView(AppCompatDelegateImpl.java:1266)
at android.support.v7.app.AppCompatDelegateImpl.onCreateView(AppCompatDelegateImpl.java:1316)
at android.view.LayoutInflater$FactoryMerger.onCreateView(LayoutInflater.java:193)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:776)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:734)
at android.view.LayoutInflater.inflate(LayoutInflater.java:496)
at android.view.LayoutInflater.inflate(LayoutInflater.java:427)
at android.view.LayoutInflater.inflate(LayoutInflater.java:378)
at com.abc.minicontroller.aba.onCreateView(Skicontroller.kt:23)
这是我的代码:
<Button xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tool="http://schemas.android.com/tools"
style="@style/ButtonStyle"
android:orientation="vertical"
android:id="@+id/skip_intro_button"
android:paddingStart="@dimen/spacing_normal"
android:paddingEnd="@dimen/spacing_normal"
tool:text="Skip Recap"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/spacing_normal"/>
风格:
<style name="ButtonStyle">
<item name="android:textColor">@android:color/black</item>
<item name="android:background">@drawable/ski_background</item>
</style>
选择器:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ski_background_selected"
android:state_pressed="true"/>
<item android:drawable="@drawable/ski_background_default"/>
</selector>
可绘制:
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/listview_background_shape">
<stroke android:width="1dp" android:color="@android:color/black"/>
<padding android:left="4dp"
android:top="4dp"
android:right="4dp"
android:bottom="4dp"/>
<solid android:color="@color/gray_opaque"/>
</shape>
【问题讨论】:
-
问题似乎不在于您发布的代码,至少不是我在使用您的代码成功编译和运行测试应用程序(在具有编译和targetSDKVersion 26 和 minSDKVersion 24 - Android Studio 不允许我将 compileSDKVersion 降低到 26 以下)。请提供有关 1. 您的 build.gradle android 设置、2. 其他可绘制对象、3. 您使用的动画、4. 您在扩展 XML 时使用的 Java 代码的更多信息。
-
你能在样式中添加一个父元素并尝试给它充气吗?
标签: android android-layout layout