2021-01-27 12:17:43.039 19096-19096/com.example.myapplication E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.myapplication, PID: 19096
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.myapplication/com.example.myapplication.MainActivity}: android.view.InflateException: Binary XML file line #22 in com.example.myapplication:layout/activity_main: Can't convert value at index 6 to dimension: type=0x4
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3450)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3602)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2067)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7660)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:975)
Caused by: android.view.InflateException: Binary XML file line #22 in com.example.myapplication:layout/activity_main: Can't convert value at index 6 to dimension: type=0x4
Caused by: java.lang.UnsupportedOperationException: Can't convert value at index 6 to dimension: type=0x4
at android.content.res.TypedArray.getDimensionPixelSize(TypedArray.java:788)
at android.view.ViewGroup$MarginLayoutParams.<init>(ViewGroup.java:8480)
at android.widget.RelativeLayout$LayoutParams.<init>(RelativeLayout.java:1296)
at android.widget.RelativeLayout.generateLayoutParams(RelativeLayout.java:1110)
at android.widget.RelativeLayout.generateLayoutParams(RelativeLayout.java:89)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1123)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1082)
at android.view.LayoutInflater.inflate(LayoutInflater.java:680)
at android.view.LayoutInflater.inflate(LayoutInflater.java:532)
at android.view.LayoutInflater.inflate(LayoutInflater.java:479)
at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:555)
at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:161)
at com.example.myapplication.MainActivity.onCreate(MainActivity.java:14)
at android.app.Activity.performCreate(Activity.java:8000)
at android.app.Activity.performCreate(Activity.java:7984)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1312)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3423)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3602)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2067)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7660)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:975)
这是Logcat
就加了一个button,无论是button还是其他控件,只要更改android:layout_width="" android:layout_height=""两个不为默认值,例如: android:layout_width="200dp" android:layout_height="200dp"就会闪退,没有报错 只有默认值不会闪退 图下是代码 <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/login" android:textSize="@dimen/size_20sp" android:textColor="#ffffff" />
看了下网上的答案,你可以尝试如下方法:
当时在适配720和480两个分辨率的机器,20dp属性只在默认的values和480下面的values中有,但是在720机器上,因为在values-720文件夹下找不到,所以报错
解决办法
在对应分辨率的文件夹下都添加一下dimens资源
这个方法可能不适合所有的情况,希望可以帮助到大家
图片:
设置的宽度和高度不能超过模拟器分辨率,可将宽和高缩小为10dp再试试
用真机运行试试