SakurajimaMaii / Android-Vast-Extension

Easy Quick Android Utils for you to faster project development.
https://ave.entropy2020.cn
Apache License 2.0
64 stars 6 forks source link

VastSkinResources在获取资源时会因为给定的资源id找不到而导致NotFoundException,使得应用闪退的问题 #38

Closed SakurajimaMaii closed 2 years ago

SakurajimaMaii commented 2 years ago
FATAL EXCEPTION: main
                Process: com.tust.mecs, PID: 12919
                java.lang.RuntimeException: Unable to start activity ComponentInfo{com.tust.mecs/com.tust.mecs.ui.activity.MainActivity}: android.view.InflateException: Binary XML file line #26 in com.tust.mecs:layout/abc_alert_dialog_material: Binary XML file line #36 in com.tust.mecs:layout/abc_alert_dialog_title_material: Error inflating class ImageView
                at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3721)
                at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3895)
                at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103)
                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:2259)
                at android.os.Handler.dispatchMessage(Handler.java:106)
                at android.os.Looper.loopOnce(Looper.java:210)
                at android.os.Looper.loop(Looper.java:299)
                at android.app.ActivityThread.main(ActivityThread.java:8087)
                at java.lang.reflect.Method.invoke(Native Method)
                at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:556)
                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1045)
                Caused by: android.view.InflateException: Binary XML file line #26 in com.tust.mecs:layout/abc_alert_dialog_material: Binary XML file line #36 in com.tust.mecs:layout/abc_alert_dialog_title_material: Error inflating class ImageView
                Caused by: android.view.InflateException: Binary XML file line #36 in com.tust.mecs:layout/abc_alert_dialog_title_material: Error inflating class ImageView
                Caused by: android.content.res.Resources$NotFoundException: Unable to find resource ID #0x0
                at android.content.res.ResourcesImpl.getResourceTypeName(ResourcesImpl.java:299)
                at android.content.res.Resources.getResourceTypeName(Resources.java:2327)
                at com.gcode.vasttools.skin.utils.VastSkinResources.getBackground(VastSkinResources.kt:123)
                at com.gcode.vasttools.skin.model.VastSkinView.applySkin(VastSkinView.kt:71)
                at com.gcode.vasttools.skin.VastSkinAttribute.look(VastSkinAttribute.kt:77)
                at com.gcode.vasttools.skin.VastSkinLayoutInflaterFactory.onCreateView(VastSkinLayoutInflaterFactory.kt:63)
                at android.view.LayoutInflater.tryCreateView(LayoutInflater.java:1088)
                at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1024)
                at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:988)
                at android.view.LayoutInflater.rInflate(LayoutInflater.java:1150)
                at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1111)
                at android.view.LayoutInflater.rInflate(LayoutInflater.java:1153)
                at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1111)
                at android.view.LayoutInflater.parseInclude(LayoutInflater.java:1294)
                at android.view.LayoutInflater.rInflate(LayoutInflater.java:1146)
                at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1111)
                at android.view.LayoutInflater.inflate(LayoutInflater.java:709)
                at android.view.LayoutInflater.inflate(LayoutInflater.java:547)
                at android.view.LayoutInflater.inflate(LayoutInflater.java:485)
                at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:706)
                at androidx.appcompat.app.AppCompatDialog.setContentView(AppCompatDialog.java:95)
                at androidx.appcompat.app.AlertController.installContent(AlertController.java:232)
                at androidx.appcompat.app.AlertDialog.onCreate(AlertDialog.java:279)
                at android.app.Dialog.dispatchOnCreate(Dialog.java:433)
                at android.app.Dialog.show(Dialog.java:327)
                at com.tust.mecs.ui.activity.MainActivity.isGpsOpen(MainActivity.kt:112)
                at com.tust.mecs.ui.activity.MainActivity.onCreate(MainActivity.kt:62)
                at android.app.Activity.performCreate(Activity.java:8238)
                at android.app.Activity.performCreate(Activity.java:8206)
                at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1329)
SakurajimaMaii commented 2 years ago

对于 src@null 的情况没有判断

<ImageView
      android:id="@android:id/icon"
      android:layout_width="32dip"
      android:layout_height="32dip"
      android:layout_marginEnd="8dip"
      android:layout_marginRight="8dip"
      android:scaleType="fitCenter"
      android:src="@null"/>