例如 陈晨 2021-01-27 16:05 采纳率: 0%
浏览 96

android studio添加控件无法更改长宽,更改过后运行就闪退

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"
    />
  • 写回答

3条回答 默认 最新

  • 清澈@Cherry 2021-01-28 09:09
    关注

    看了下网上的答案,你可以尝试如下方法:

    当时在适配720和480两个分辨率的机器,20dp属性只在默认的values和480下面的values中有,但是在720机器上,因为在values-720文件夹下找不到,所以报错

    解决办法

    在对应分辨率的文件夹下都添加一下dimens资源

    这个方法可能不适合所有的情况,希望可以帮助到大家

    图片: 在这里插入图片描述

    评论

报告相同问题?

悬赏问题

  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序