Android ProgressBar ResourceNotFound res/drawable.check_animated.xml 仅在设备 Allwinner A88S 上
Android ProgressBar ResourceNotFound res/drawable.check_animated.xml only on device Allwinner A88S
我正在尝试显示进度条。它适用于我测试的所有设备(大约 10 台设备),但它在名为 Allwinner A88S Android 5.1.1 的低成本设备上失败。 android 版本不是问题,因为 5.1.1 中的其他设备可以正常工作。
所以,它找不到名为 res/drawable/check_animated 的资源。xml
我的猜测是,这可能与缺少支持库有关,但我找不到哪个库可以提供 check_animated.xml。任何线索或想法将不胜感激。也许我可以提供我自己的 check_animated.xml,但无法在任何地方找到此文件。谢谢。
以下是 ProgressBar 在布局中的描述方式
<ProgressBar
android:id="@+id/jdp_waitbar"
style="@style/Base.Widget.AppCompat.ProgressBar.Horizontal"
android:layout_centerHorizontal="true"
android:layout_width="160dp"
android:layout_height="5dp"
android:layout_alignParentTop="true"
android:layout_margin="0dip"
android:max="100"
android:visibility="invisible"
android:progressDrawable="@drawable/jdp_progress_drawable"
/>
这里是个例外:
Caused by: android.content.res.Resources$NotFoundException: File res/drawable/check_animated.xml from drawable resource ID #0x7f0200d3
at android.content.res.Resources.loadDrawableForCookie(Resources.java:2479)
at android.content.res.Resources.loadDrawable(Resources.java:2381)
at android.content.res.TypedArray.getDrawable(TypedArray.java:749)
at android.widget.ProgressBar.<init>(ProgressBar.java:267)
at android.widget.ProgressBar.<init>(ProgressBar.java:253)
at android.widget.ProgressBar.<init>(ProgressBar.java:249)
at java.lang.reflect.Constructor.newInstance(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
at android.view.LayoutInflater.createView(LayoutInflater.java:607)
at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:682)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
at com.furetcompany.base.components.WaitingView.createView(WaitingView.java:112)
at com.furetcompany.base.components.WaitingView.<init>(WaitingView.java:45)
at com.furetcompany.base.network.CircuitDownloader.showWaitingDialog(CircuitDownloader.java:86)
at com.furetcompany.base.network.CircuitDownloader.run(CircuitDownloader.java:221)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
检查值
compileSdkVersion
targetSdkVersion
在您的应用级 gradle 构建文件中,并确保它们是最新的。还要确保 minSdkVersion
等于或低于应用崩溃的设备支持的最新 API 版本。对于 Android 5.1.1,您的 minSdkVersion
应为 22 或更低。清理项目并重试。
经过多次测试,似乎是activity主题的问题。
正在替换
<activity android:name=".MainActivity" android:theme="@android:style/Theme.NoTitleBar">
和
<activity android:name=".MainActivity" android:theme="@android:style/Theme.AppCompat.Light.NoActionBar">
修复了崩溃问题。
我正在尝试显示进度条。它适用于我测试的所有设备(大约 10 台设备),但它在名为 Allwinner A88S Android 5.1.1 的低成本设备上失败。 android 版本不是问题,因为 5.1.1 中的其他设备可以正常工作。
所以,它找不到名为 res/drawable/check_animated 的资源。xml 我的猜测是,这可能与缺少支持库有关,但我找不到哪个库可以提供 check_animated.xml。任何线索或想法将不胜感激。也许我可以提供我自己的 check_animated.xml,但无法在任何地方找到此文件。谢谢。
以下是 ProgressBar 在布局中的描述方式
<ProgressBar
android:id="@+id/jdp_waitbar"
style="@style/Base.Widget.AppCompat.ProgressBar.Horizontal"
android:layout_centerHorizontal="true"
android:layout_width="160dp"
android:layout_height="5dp"
android:layout_alignParentTop="true"
android:layout_margin="0dip"
android:max="100"
android:visibility="invisible"
android:progressDrawable="@drawable/jdp_progress_drawable"
/>
这里是个例外:
Caused by: android.content.res.Resources$NotFoundException: File res/drawable/check_animated.xml from drawable resource ID #0x7f0200d3
at android.content.res.Resources.loadDrawableForCookie(Resources.java:2479)
at android.content.res.Resources.loadDrawable(Resources.java:2381)
at android.content.res.TypedArray.getDrawable(TypedArray.java:749)
at android.widget.ProgressBar.<init>(ProgressBar.java:267)
at android.widget.ProgressBar.<init>(ProgressBar.java:253)
at android.widget.ProgressBar.<init>(ProgressBar.java:249)
at java.lang.reflect.Constructor.newInstance(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
at android.view.LayoutInflater.createView(LayoutInflater.java:607)
at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:682)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
at com.furetcompany.base.components.WaitingView.createView(WaitingView.java:112)
at com.furetcompany.base.components.WaitingView.<init>(WaitingView.java:45)
at com.furetcompany.base.network.CircuitDownloader.showWaitingDialog(CircuitDownloader.java:86)
at com.furetcompany.base.network.CircuitDownloader.run(CircuitDownloader.java:221)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
检查值
compileSdkVersion
targetSdkVersion
在您的应用级 gradle 构建文件中,并确保它们是最新的。还要确保 minSdkVersion
等于或低于应用崩溃的设备支持的最新 API 版本。对于 Android 5.1.1,您的 minSdkVersion
应为 22 或更低。清理项目并重试。
经过多次测试,似乎是activity主题的问题。
正在替换
<activity android:name=".MainActivity" android:theme="@android:style/Theme.NoTitleBar">
和
<activity android:name=".MainActivity" android:theme="@android:style/Theme.AppCompat.Light.NoActionBar">
修复了崩溃问题。