Problem description: Android 9.0 application installed to Android 4.4 reports an error InflateException, prompting you must provide a layout_height property.
Android9.0 application installed to Android4.4 reports an error InflateException, prompting you must provide a layout_height property.
Stack.
0-26 11:19:23.312 10710 10710 E AndroidRuntime: FATAL EXCEPTION: main 10-26 11:19:23.312 10710 10710 E AndroidRuntime: Process: com.XX.app, PID: 10710 10-26 11:19:23.312 10710 10710 E AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.XX.app/com.XX.view.player.VideoPlayActivity}: android.view.InflateException: Binary XML file line #16: Error inflating class com.XX.widget.TvXXControlView 10-26 11:19:23.312 10710 10710 E AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195) 10-26 11:19:23.312 10710 10710 E AndroidRuntime: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245) 10-26 11:19:23.312 10710 10710 E AndroidRuntime: at android.app.ActivityThread.access$800(ActivityThread.java:135) 10-26 11:19:23.312 10710 10710 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 10-26 11:19:23.312 10710 10710 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:102) 10-26 11:19:23.312 10710 10710 E AndroidRuntime: at android.os.Looper.loop(Looper.java:136) 10-26 11:19:23.312 10710 10710 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:5047) 10-26 11:19:23.312 10710 10710 E AndroidRuntime: at java.lang.reflect.Method.invokeNative(Native Method) 10-26 11:19:23.312 10710 10710 E AndroidRuntime: at java.lang.reflect.Method.invoke(Method.java:515) 10-26 11:19:23.312 10710 10710 E AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842) 10-26 11:19:23.312 10710 10710 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:658) 10-26 11:19:23.312 10710 10710 E AndroidRuntime: at dalvik.system.NativeStart.main(Native Method) 10-26 11:19:23.312 10710 10710 E AndroidRuntime: Caused by: android.view.InflateException: Binary XML file line #16: Error inflating class com.XX.widget.TvControlView 10-26 11:19:23.312 10710 10710 E AndroidRuntime: at android.view.LayoutInflater.createView(LayoutInflater.java:620) 10-26 11:19:23.312 10710 10710 E AndroidRuntime: at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696) 10-26 11:19:23.312 10710 10710 E AndroidRuntime: at android.view.LayoutInflater.rInflate(LayoutInflater.java:755) 10-26 11:19:23.312 10710 10710 E AndroidRuntime: at android.view.LayoutInflater.inflate(LayoutInflater.java:492) 10-26 11:19:23.312 10710 10710 E AndroidRuntime: at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 10-26 11:19:23.312 10710 10710 E AndroidRuntime: at android.view.LayoutInflater.inflate(LayoutInflater.java:353) 10-26 11:19:23.312 10710 10710 E AndroidRuntime: at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:696) 10-26 11:19:23.312 10710 10710 E AndroidRuntime: at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:170) 10-26 11:19:23.312 10710 10710 E AndroidRuntime: at com.XX.view.player.BaseVideoPlayActivity.onCreate(BaseVideoPlayActivity.java:90) 10-26 11:19:23.312 10710 10710 E AndroidRuntime: at android.app.Activity.performCreate(Activity.java:5294) 10-26 11:19:23.312 10710 10710 E AndroidRuntime: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1101) 10-26 11:19:23.312 10710 10710 E AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159) 10-26 11:19:23.312 10710 10710 E AndroidRuntime: ... 11 more 10-26 11:19:23.312 10710 10710 E AndroidRuntime: Caused by: java.lang.reflect.InvocationTargetException 10-26 11:19:23.312 10710 10710 E AndroidRuntime: at java.lang.reflect.Constructor.constructNative(Native Method) 10-26 11:19:23.312 10710 10710 E AndroidRuntime: at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 10-26 11:19:23.312 10710 10710 E AndroidRuntime: at android.view.LayoutInflater.createView(LayoutInflater.java:594) 10-26 11:19:23.312 10710 10710 E AndroidRuntime: ... 22 more 10-26 11:19:23.312 10710 10710 E AndroidRuntime: Caused by: java.lang.RuntimeException: Binary XML file line #17: You must supply a layout_height attribute. 10-26 11:19:23.312 10710 10710 E AndroidRuntime: at android.content.res.TypedArray.getLayoutDimension(TypedArray.java:492) 10-26 11:19:23.312 10710 10710 E AndroidRuntime: at android.view.ViewGroup$LayoutParams.setBaseAttributes(ViewGroup.java:5949) 10-26 11:19:23.312 10710 10710 E AndroidRuntime: at android.view.ViewGroup$MarginLayoutParams.<init>(ViewGroup.java:6117) 10-26 11:19:23.312 10710 10710 E AndroidRuntime: at android.widget.RelativeLayout$LayoutParams.<init>(RelativeLayout.java:1225) 10-26 11:19:23.312 10710 10710 E AndroidRuntime: at android.widget.RelativeLayout.generateLayoutParams(RelativeLayout.java:1062) 10-26 11:19:23.312 10710 10710 E AndroidRuntime: at android.widget.RelativeLayout.generateLayoutParams(RelativeLayout.java:82) 10-26 11:19:23.312 10710 10710 E AndroidRuntime: at android.view.LayoutInflater.rInflate(LayoutInflater.java:757) 10-26 11:19:23.312 10710 10710 E AndroidRuntime: at android.view.LayoutInflater.inflate(LayoutInflater.java:492) 10-26 11:19:23.312 10710 10710 E AndroidRuntime: at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 10-26 11:19:23.312 10710 10710 E AndroidRuntime: at android.view.LayoutInflater.inflate(LayoutInflater.java:353) 10-26 11:19:23.312 10710 10710 E AndroidRuntime: at android.view.View.inflate(View.java:17465) 10-26 11:19:23.312 10710 10710 E AndroidRuntime: at com.xx.widget.TvControlView.<init>(TvControlView.java:132) 10-26 11:19:23.312 10710 10710 E AndroidRuntime: at com.xx.widget.TvXXControlView.<init>(TvXXControlView.java:64)
Solution:
This problem actually has nothing to do with the version, but with the screen allocation rate. The layout xml defines the layout_height referencing the constant defined in the values, but the definition is only defined in the directory of the specific resolution. So the solution Define the referenced value in the values directory