Je viens de tester mon application sur Oreo et je reçois ce qui semble être une exception fatale assez fondamentale que je ne reçois pas sur les versions antérieures d'Android.android.view.InflateException, mais seulement lors des tests sur Oreo
10-14 21:03:38.004 6833-6833/com.nooriginalthought.yabs E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.nooriginalthought.yabs, PID: 6833
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.nooriginalthought.yabs/com.nooriginalthought.yabs.MainActivity}: android.view.InflateException: Binary XML file line #428: Binary XML file line #428: Error inflating class <unknown>
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2817)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6541)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
Caused by: android.view.InflateException: Binary XML file line #428: Binary XML file line #428: Error inflating class <unknown>
Caused by: android.view.InflateException: Binary XML file line #428: Error inflating class <unknown>
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.newInstance0(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:334)
at android.view.LayoutInflater.createView(LayoutInflater.java:647)
at com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:58)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:720)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:788)
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.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)
at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:418)
at android.app.Activity.setContentView(Activity.java:2654)
at com.nooriginalthought.yabs.MainActivity.onCreate(MainActivity.java:155)
at android.app.Activity.performCreate(Activity.java:6975)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1213)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2770)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6541)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
Après cela, je reçois un tas d'erreurs pour android.content.res.Resources$NotFoundException
vecteur de ressources étirables - bien que ceux-ci fonctionnent parfaitement dans les versions antérieures d'Android.
Tout cela pendant les tests dans l'émulateur Android Studio car je n'ai pas accès à un périphérique Oreo.
Les erreurs semblent toutes être très vagues - la seule qui pointe vers une ligne de mon code pointe vers la ligne qui appelle la mise en page correcte setContentView(R.layout.main);
.
Ligne 428 à main.xml (la ligne dans le fichier de configuration qui est gonflé et qui est visée à l'erreur) est la suivante:
<Button
android:id="@+id/email_button"
android:layout_width="50dp"
android:layout_height="32dp"
android:background="@drawable/ic_yabs_email_144x92"
android:backgroundTint="#ffff"
android:paddingRight="8dp"
android:paddingTop="8dp"
android:textColor="#ffff"
android:textSize="12dp" />
Veuillez inclure 'R.layout.main' et mettre en surbrillance la ligne 428 (mentionnée dans l'erreur) –
La ligne 428 dans ce fichier de disposition est un bouton qui utilise l'un de mes vecteurs vectoriels comme arrière-plan. Les tirables existent définitivement dans le projet car ils sont affichés correctement lors de l'exécution ou du test sur toute autre version d'Android que j'ai essayé. J'ajouterai cette section du fichier layout.xml à la question. –