AndroidStudio仍然认为可绘制对象的ID被缺少的资源占用了

我正在测试具有item-list-> item-detail活动片段结构的Android应用。

我遇到这种错误:

java.lang.NullPointerException
at android.text.style.DynamicdrawableSpan.getSize(DynamicdrawableSpan.java:81)
at android.text.MeasuredText.addStyleRun(MeasuredText.java:207)
at android.text.StaticLayout.generate(StaticLayout.java:281)
at android.text.DynamicLayout.reflow(DynamicLayout.java:284)
at android.text.DynamicLayout.<init>(DynamicLayout.java:170)
at android.widget.TextView.makeSingleLayout(TextView.java:6134)
at android.widget.TextView.makeNewLayout(TextView.java:6032)
at android.widget.TextView.onmeasure(TextView.java:6389)
at android.view.View.measure(View.java:16497)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
at android.widget.LinearLayout.onmeasure(LinearLayout.java:588)
at android.view.View.measure(View.java:16497)
at androidx.core.widget.nestedScrollView.measureChildWithMargins(nestedScrollView.java:1502)
at android.widget.FrameLayout.onmeasure(FrameLayout.java:310)
at androidx.core.widget.nestedScrollView.onmeasure(nestedScrollView.java:556)
at android.view.View.measure(View.java:16497)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
at androidx.coordinatorlayout.widget.CoordinatorLayout.onmeasureChild(CoordinatorLayout.java:733)
at com.google.android.material.appbar.HeaderScrollingViewBehavior.onmeasureChild(HeaderScrollingViewBehavior.java:95)
at com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior.onmeasureChild(AppBarLayout.java:1556)
at androidx.coordinatorlayout.widget.CoordinatorLayout.onmeasure(CoordinatorLayout.java:803)
at android.view.View.measure(View.java:16497)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
at android.widget.FrameLayout.onmeasure(FrameLayout.java:310)
at androidx.appcompat.widget.ContentFrameLayout.onmeasure(ContentFrameLayout.java:143)
at android.view.View.measure(View.java:16497)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
at android.widget.LinearLayout.onmeasure(LinearLayout.java:588)
at android.view.View.measure(View.java:16497)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
at android.widget.FrameLayout.onmeasure(FrameLayout.java:310)
at android.view.View.measure(View.java:16497)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
at android.widget.LinearLayout.onmeasure(LinearLayout.java:588)
at android.view.View.measure(View.java:16497)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
at android.widget.FrameLayout.onmeasure(FrameLayout.java:310)
at com.android.internal.policy.impl.PhoneWindow$DecorView.onmeasure(PhoneWindow.java:2291)
at android.view.View.measure(View.java:16497)
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1916)
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1113)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1352)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1000)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5670)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
at android.view.Choreographer.doCallbacks(Choreographer.java:574)
at android.view.Choreographer.doFrame(Choreographer.java:544)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.activityThread.main(activi

它起源于未知的地方,但与可绘制对象有关。

span = new ImageSpan(activity,R.drawable.suitable_id);

可绘制对象是通过新的矢量资产自动导入功能从svg文件创建的。

在以这种方式正确导入之前,我错误地在选择器元素内创建了一个带有svg元素的资源。元素的ID位于选择器(suitable_id)上。

使用矢量资产导入后,我没有意识到该ID仍然可以被编译器识别,尽管尚未将其分配给新资源。

因此它给出了上述空指针错误。

现在,id位于vector元素上,它是合法元素(它的内部确实复制了svg轮廓的路径),除非id放在path元素上。

我清理并完成了该项目,但是该资源仍未更新,我认为它正在尝试加载旧的缺少的资源。我可以看到,项目上没有与旧的错误资源相对应的文件。

我现在该怎么办?

lx58471571 回答:AndroidStudio仍然认为可绘制对象的ID被缺少的资源占用了

使缓存无效,然后重新启动而不是重新构建

本文链接:https://www.f2er.com/3020988.html

大家都在问