簡體   English   中英

ImageView矢量資產在Nougat上運行並在Oreo上崩潰

[英]ImageView vector asset working on Nougat and crashing on Oreo

這真讓我抓狂。 我只是做了一些簡單的svg圖標來替換我的應用程序(在ImageView中)中的png圖標(我已經在另一項活動中做到了,並且效果很好),突然之間,該應用程序不斷崩潰,並出現以下錯誤Android 8.0,但在7.0上可以正常使用。 所有xml文件都在正確的drawable文件夾中,所有內容都檢出,但仍然崩潰。 我在SO上讀到我必須更新Gradle文件中的支持庫,但是如果這樣做,它說我必須更改compileSdkVersion以匹配支持庫版本(這將使其與8.0之前的Android版本不兼容) , 對?)

編輯 :我只是嘗試更新支持庫,它仍然崩潰。

編輯2 :這三個圖標中的只有一個使應用程序崩潰了……它變得很奇怪

編輯3 :我將圖標更改為其他圖標,現在它可以工作了...很好,但是我仍然想了解為什么Android 8與在與其他圖標相同的軟件中制作的某些SVG圖標不兼容。

這是我得到的錯誤。 請暫停。

04-09 14:58:57.377 9954-9954/com.example.mehra.testcalculator E/AndroidRuntime: FATAL EXCEPTION: main
                                                                            Process: com.example.mehra.testcalculator, PID: 9954
                                                                            java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.mehra.testcalculator/com.example.mehra.testcalculator.MainActivity}: android.view.InflateException: Binary XML file line #0: Binary XML file line #0: Error inflating class ImageView
                                                                                at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2955)
                                                                                at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3030)
                                                                                at android.app.ActivityThread.-wrap11(Unknown Source:0)
                                                                                at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1696)
                                                                                at android.os.Handler.dispatchMessage(Handler.java:105)
                                                                                at android.os.Looper.loop(Looper.java:164)
                                                                                at android.app.ActivityThread.main(ActivityThread.java:6938)
                                                                                at java.lang.reflect.Method.invoke(Native Method)
                                                                                at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
                                                                                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
                                                                             Caused by: android.view.InflateException: Binary XML file line #0: Binary XML file line #0: Error inflating class ImageView
                                                                             Caused by: android.view.InflateException: Binary XML file line #0: Error inflating class ImageView
                                                                             Caused by: android.content.res.Resources$NotFoundException: Drawable com.example.mehra.testcalculator:drawable/ic_cycleicon with resource ID #0x7f08006e
                                                                             Caused by: android.content.res.Resources$NotFoundException: File res/drawable-anydpi-v21/ic_cycleicon.xml from drawable resource ID #0x7f08006e
                                                                                at android.content.res.ResourcesImpl.loadDrawableForCookie(ResourcesImpl.java:818)
                                                                                at android.content.res.ResourcesImpl.loadDrawable(ResourcesImpl.java:650)
                                                                                at android.content.res.Resources.getDrawableForDensity(Resources.java:891)
                                                                                at android.content.res.Resources.getDrawable(Resources.java:833)
                                                                                at android.content.Context.getDrawable(Context.java:605)
                                                                                at android.support.v4.content.ContextCompat.getDrawable(ContextCompat.java:351)
                                                                                at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:200)
                                                                                at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:188)
                                                                                at android.support.v7.content.res.AppCompatResources.getDrawable(AppCompatResources.java:100)
                                                                                at android.support.v7.widget.AppCompatImageHelper.loadFromAttributes(AppCompatImageHelper.java:58)
                                                                                at android.support.v7.widget.AppCompatImageView.<init>(AppCompatImageView.java:78)
                                                                                at android.support.v7.widget.AppCompatImageView.<init>(AppCompatImageView.java:68)
                                                                                at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:106)
                                                                                at android.support.v7.app.AppCompatDelegateImplV9.createView(AppCompatDelegateImplV9.java:1024)
                                                                                at android.support.v7.app.AppCompatDelegateImplV9.onCreateView(AppCompatDelegateImplV9.java:1081)
                                                                                at android.view.LayoutInflater$FactoryMerger.onCreateView(LayoutInflater.java:189)
                                                                                at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:772)
                                                                                at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730)
                                                                                at android.view.LayoutInflater.rInflate(LayoutInflater.java:863)
                                                                                at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
                                                                                at android.view.LayoutInflater.rInflate(LayoutInflater.java:866)
                                                                                at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
                                                                                at android.view.LayoutInflater.rInflate(LayoutInflater.java:866)
                                                                                at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
                                                                                at android.view.LayoutInflater.rInflate(LayoutInflater.java:866)
                                                                                at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
                                                                                at android.view.LayoutInflater.rInflate(LayoutInflater.java:866)
                                                                                at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
                                                                                at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
                                                                                at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
                                                                                at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
04-09 14:58:57.382 9954-9954/com.example.mehra.testcalculator E/AndroidRuntime:     at com.example.mehra.testcalculator.Calculator_fragment.onCreateView(Calculator_fragment.java:68)
                                                                                    at android.support.v4.app.Fragment.performCreateView(Fragment.java:2354)
                                                                                    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1419)
                                                                                    at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1740)
                                                                                    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1809)
                                                                                    at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:799)
                                                                                    at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2580)
                                                                                    at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2367)
                                                                                    at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2322)
                                                                                    at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2229)
                                                                                    at android.support.v4.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3221)
                                                                                    at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:3171)
                                                                                    at android.support.v4.app.FragmentController.dispatchActivityCreated(FragmentController.java:192)
                                                                                    at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:560)
                                                                                    at android.support.v7.app.AppCompatActivity.onStart(AppCompatActivity.java:177)
                                                                                    at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1340)
                                                                                    at android.app.Activity.performStart(Activity.java:7191)
                                                                                    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2918)
                                                                                    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3030)
                                                                                    at android.app.ActivityThread.-wrap11(Unknown Source:0)
                                                                                    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1696)
                                                                                    at android.os.Handler.dispatchMessage(Handler.java:105)
                                                                                    at android.os.Looper.loop(Looper.java:164)
                                                                                    at android.app.ActivityThread.main(ActivityThread.java:6938)
                                                                                    at java.lang.reflect.Method.invoke(Native Method)
                                                                                    at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
                                                                                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
                                                                                 Caused by: java.lang.IllegalArgumentException: Path string cannot be empty.
                                                                                    at android.util.PathParser.nCreatePathDataFromString(Native Method)
                                                                                    at android.util.PathParser.-wrap1(Unknown Source:0)
                                                                                    at android.util.PathParser$PathData.<init>(PathParser.java:76)
                                                                                    at android.graphics.drawable.VectorDrawable$VFullPath.updateStateFromTypedArray(VectorDrawable.java:1924)
                                                                                    at android.graphics.drawable.VectorDrawable$VFullPath.inflate(VectorDrawable.java:1875)
                                                                                    at android.graphics.drawable.VectorDrawable.inflateChildElements(VectorDrawable.java:734)
                                                                                    at android.graphics.drawable.VectorDrawable.inflate(VectorDrawable.java:635)
                                                                                    at android.graphics.drawable.DrawableInflater.inflateFromXmlForDensity(DrawableInflater.java:146)
                                                                                    at android.graphics.drawable.Drawable.createFromXmlInnerForDensity(Drawable.java:1322)
                                                                                    at android.graphics.drawable.Drawable.createFromXmlForDensity(Drawable.java:1281)
                                                                                    at android.content.res.ResourcesImpl.loadDrawableForCookie(ResourcesImpl.java:808)
                                                                                        ... 57 more

Caused by: java.lang.IllegalArgumentException: Path string cannot be empty.

可能其中一個圖標中有一個空路徑。 較舊版本的Android可能會忽略它,而Oreo的權限則較弱。

檢查您的圖標XML並刪除所有空路徑。

為什么會出錯? 空路毫無意義。 它僅占用空間。 最初不應該在那兒。 Android足以讓您知道。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM