InflateException: ошибка при раздувании класса <неизвестно>, вызванная ссылками на атрибуты цвета? ⇐ JAVA
-
Anonymous
InflateException: ошибка при раздувании класса <неизвестно>, вызванная ссылками на атрибуты цвета?
I get the exception below at app startup. The app worked fine with AS Giraffe, the problem first occurred with AS Hedgehog and now as well with AS Iguana.
The layout is a fragment used by the main activities' layout. There are no own classes, it only contains ConstraintLayout, Button, EditText, Spinner and FloatingActionButton.
So how can I trace down the underlying problem? And why does it say "unknown"?
frag_buttons.xml:
Stack dump:
A resource failed to call close. Shutting down VM FATAL EXCEPTION: main Process: de.myapp.myapp_1, PID: 6191 android.view.InflateException: Binary XML file line #11 in de.myapp.myapp_1:layout/frag_buttons: Binary XML file line #11 in de.myapp.myapp_1:layout/frag_buttons: Error inflating class Caused by: android.view.InflateException: Binary XML file line #11 in de.myapp.myapp_1:layout/frag_buttons: Error inflating class Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Constructor.newInstance0(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:343) at android.view.LayoutInflater.createView(LayoutInflater.java:852) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1004) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:959) at android.view.LayoutInflater.inflate(LayoutInflater.java:657) at android.view.LayoutInflater.inflate(LayoutInflater.java:532) at de.myapp.myapp_1.frag.ButtonsFragment.onCreateView(ButtonsFragment.java:55) at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2963) at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:518) at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:282) at androidx.fragment.app.FragmentStore.moveToExpectedState(FragmentStore.java:112) at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1647) at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3128) at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:3072) at androidx.fragment.app.FragmentController.dispatchActivityCreated(FragmentController.java:251) at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:502) at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:251) at de.myapp.myapp_1.act.Myapp1Activity.onStart(Myapp1Activity.java:351) at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1435) at android.app.Activity.performStart(Activity.java:8018) at android.app.ActivityThread.handleStartActivity(ActivityThread.java:3475) at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:221) at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:201) at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:173) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:223) at android.app.ActivityThread.main(ActivityThread.java:7656) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) Caused by: java.lang.UnsupportedOperationException: Failed to resolve attribute at index 77: TypedValue{t=0x2/d=0x7f040133 a=-1} at android.content.res.TypedArray.getColorStateList(TypedArray.java:597) at android.view.View.(View.java:5863) at android.view.ViewGroup.(ViewGroup.java:697) at android.view.ViewGroup.(ViewGroup.java:693) at android.view.ViewGroup.(ViewGroup.java:689) at androidx.constraintlayout.widget.ConstraintLayout.(ConstraintLayout.java:587) at java.lang.reflect.Constructor.newInstance0(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:343) at android.view.LayoutInflater.createView(LayoutInflater.java:852) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1004) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:959) at android.view.LayoutInflater.inflate(LayoutInflater.java:657) at android.view.LayoutInflater.inflate(LayoutInflater.java:532) at de.myapp.myapp_1.frag.ButtonsFragment.onCreateView(ButtonsFragment.java:55) at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2963) at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:282) at androidx.fragment.app.FragmentStore.moveToExpectedState(FragmentStore.java:112) at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1647) at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3128) at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:3072) at androidx.fragment.app.FragmentController.dispatchActivityCreated(FragmentController.java:251) at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:502) at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:251) at de.myapp.myapp_1.act.Myapp1Activity.onStart(Myapp1Activity.java:351) at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1435) at android.app.Activity.performStart(Activity.java:8018) at android.app.ActivityThread.handleStartActivity(ActivityThread.java:3475) at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:221) at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:201) at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:173) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:223) at android.app.ActivityThread.main(ActivityThread.java:7656) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) The class ButtonsFragment is there, and it compiles without errors. The code snippet causing the exception is simple:
@Override public View onCreateView (@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { return inflater.inflate ( R.layout.frag_buttons, container, false) ; } And again, it worked perfectly with AS Giraffe. Invalidate Caches and Restart has been done several times.
I removed all references to drawables (as you can see above in frag_buttons.xml). I even replaced "btnTestFuncExit" by a normal Button (which should actually be a ImageButton).
The style used references the following color state list.
I found the line android.content.res.TypedArray.getColorStateList in the stack dump. I have a suspicion that references to e.g. android:color="?attr/colorOnSecondary" do not work (probably even in other places than in color state lists): the AS Designer does not display a color related to this attribute.
Popup displayed by AS Designer
So - how can I trace down (if this is the cause) why the color attributes do not work?
Источник: https://stackoverflow.com/questions/780 ... s-to-color
I get the exception below at app startup. The app worked fine with AS Giraffe, the problem first occurred with AS Hedgehog and now as well with AS Iguana.
The layout is a fragment used by the main activities' layout. There are no own classes, it only contains ConstraintLayout, Button, EditText, Spinner and FloatingActionButton.
So how can I trace down the underlying problem? And why does it say "unknown"?
frag_buttons.xml:
Stack dump:
A resource failed to call close. Shutting down VM FATAL EXCEPTION: main Process: de.myapp.myapp_1, PID: 6191 android.view.InflateException: Binary XML file line #11 in de.myapp.myapp_1:layout/frag_buttons: Binary XML file line #11 in de.myapp.myapp_1:layout/frag_buttons: Error inflating class Caused by: android.view.InflateException: Binary XML file line #11 in de.myapp.myapp_1:layout/frag_buttons: Error inflating class Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Constructor.newInstance0(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:343) at android.view.LayoutInflater.createView(LayoutInflater.java:852) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1004) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:959) at android.view.LayoutInflater.inflate(LayoutInflater.java:657) at android.view.LayoutInflater.inflate(LayoutInflater.java:532) at de.myapp.myapp_1.frag.ButtonsFragment.onCreateView(ButtonsFragment.java:55) at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2963) at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:518) at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:282) at androidx.fragment.app.FragmentStore.moveToExpectedState(FragmentStore.java:112) at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1647) at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3128) at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:3072) at androidx.fragment.app.FragmentController.dispatchActivityCreated(FragmentController.java:251) at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:502) at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:251) at de.myapp.myapp_1.act.Myapp1Activity.onStart(Myapp1Activity.java:351) at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1435) at android.app.Activity.performStart(Activity.java:8018) at android.app.ActivityThread.handleStartActivity(ActivityThread.java:3475) at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:221) at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:201) at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:173) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:223) at android.app.ActivityThread.main(ActivityThread.java:7656) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) Caused by: java.lang.UnsupportedOperationException: Failed to resolve attribute at index 77: TypedValue{t=0x2/d=0x7f040133 a=-1} at android.content.res.TypedArray.getColorStateList(TypedArray.java:597) at android.view.View.(View.java:5863) at android.view.ViewGroup.(ViewGroup.java:697) at android.view.ViewGroup.(ViewGroup.java:693) at android.view.ViewGroup.(ViewGroup.java:689) at androidx.constraintlayout.widget.ConstraintLayout.(ConstraintLayout.java:587) at java.lang.reflect.Constructor.newInstance0(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:343) at android.view.LayoutInflater.createView(LayoutInflater.java:852) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1004) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:959) at android.view.LayoutInflater.inflate(LayoutInflater.java:657) at android.view.LayoutInflater.inflate(LayoutInflater.java:532) at de.myapp.myapp_1.frag.ButtonsFragment.onCreateView(ButtonsFragment.java:55) at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2963) at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:282) at androidx.fragment.app.FragmentStore.moveToExpectedState(FragmentStore.java:112) at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1647) at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3128) at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:3072) at androidx.fragment.app.FragmentController.dispatchActivityCreated(FragmentController.java:251) at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:502) at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:251) at de.myapp.myapp_1.act.Myapp1Activity.onStart(Myapp1Activity.java:351) at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1435) at android.app.Activity.performStart(Activity.java:8018) at android.app.ActivityThread.handleStartActivity(ActivityThread.java:3475) at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:221) at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:201) at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:173) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:223) at android.app.ActivityThread.main(ActivityThread.java:7656) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) The class ButtonsFragment is there, and it compiles without errors. The code snippet causing the exception is simple:
@Override public View onCreateView (@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { return inflater.inflate ( R.layout.frag_buttons, container, false) ; } And again, it worked perfectly with AS Giraffe. Invalidate Caches and Restart has been done several times.
I removed all references to drawables (as you can see above in frag_buttons.xml). I even replaced "btnTestFuncExit" by a normal Button (which should actually be a ImageButton).
The style used references the following color state list.
I found the line android.content.res.TypedArray.getColorStateList in the stack dump. I have a suspicion that references to e.g. android:color="?attr/colorOnSecondary" do not work (probably even in other places than in color state lists): the AS Designer does not display a color related to this attribute.
Popup displayed by AS Designer
So - how can I trace down (if this is the cause) why the color attributes do not work?
Источник: https://stackoverflow.com/questions/780 ... s-to-color
Мобильная версия