android - Inflator 在 Samsung Galaxy Tab 2 上抛出 NumberFormatException : Invalid int: 20. 0dip

标签 android android-layout actionbarsherlock android-inflate galaxy-tab

应用程序在其他 Android 设备上运行良好,仅在 Samsung Galaxy Tab 2 上运行时崩溃。

认为这与不支持的 ActionBarSherlock 有关,因此我禁用了所有自定义样式,但没有帮助。

完整的堆栈跟踪 -

01-01 12:05:43.480: FATAL EXCEPTION: main
01-01 12:05:43.480: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mycompany.myapp/com.mycompany.MainActivity}: android.view.InflateException: Binary XML file line #26: Error inflating class android.widget.TextView
01-01 12:05:43.480:     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2097)
01-01 12:05:43.480:     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2122)
01-01 12:05:43.480:     at android.app.ActivityThread.access$600(ActivityThread.java:140)
01-01 12:05:43.480:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1228)
01-01 12:05:43.480:     at android.os.Handler.dispatchMessage(Handler.java:99)
01-01 12:05:43.480:     at android.os.Looper.loop(Looper.java:137)
01-01 12:05:43.480:     at android.app.ActivityThread.main(ActivityThread.java:4895)
01-01 12:05:43.480:     at java.lang.reflect.Method.invokeNative(Native Method)
01-01 12:05:43.480:     at java.lang.reflect.Method.invoke(Method.java:511)
01-01 12:05:43.480:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:994)
01-01 12:05:43.480:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:761)
01-01 12:05:43.480:     at dalvik.system.NativeStart.main(Native Method)
01-01 12:05:43.480: Caused by: android.view.InflateException: Binary XML file line #26: Error inflating class android.widget.TextView
01-01 12:05:43.480:     at android.view.LayoutInflater.createView(LayoutInflater.java:613)
01-01 12:05:43.480:     at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
01-01 12:05:43.480:     at android.view.LayoutInflater.onCreateView(LayoutInflater.java:660)
01-01 12:05:43.480:     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685)
01-01 12:05:43.480:     at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
01-01 12:05:43.480:     at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
01-01 12:05:43.480:     at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
01-01 12:05:43.480:     at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
01-01 12:05:43.480:     at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
01-01 12:05:43.480:     at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:306)
01-01 12:05:43.480:     at com.actionbarsherlock.internal.ActionBarSherlockNative.setContentView(ActionBarSherlockNative.java:133)
01-01 12:05:43.480:     at com.actionbarsherlock.app.SherlockActivity.setContentView(SherlockActivity.java:229)
01-01 12:05:43.480:     at com.mycompany.myapp.MainActivity.onCreate(MainActivity.java:60)
01-01 12:05:43.480:     at android.app.Activity.performCreate(Activity.java:5163)
01-01 12:05:43.480:     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
01-01 12:05:43.480:     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2061)
01-01 12:05:43.480:     ... 11 more
01-01 12:05:43.480: Caused by: java.lang.reflect.InvocationTargetException
01-01 12:05:43.480:     at java.lang.reflect.Constructor.constructNative(Native Method)
01-01 12:05:43.480:     at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
01-01 12:05:43.480:     at android.view.LayoutInflater.createView(LayoutInflater.java:587)
01-01 12:05:43.480:     ... 26 more
01-01 12:05:43.480: Caused by: java.lang.NumberFormatException: Invalid int: "20.0dip"
01-01 12:05:43.480:     at java.lang.Integer.invalidInt(Integer.java:138)
01-01 12:05:43.480:     at java.lang.Integer.parse(Integer.java:375)
01-01 12:05:43.480:     at java.lang.Integer.parseInt(Integer.java:366)
01-01 12:05:43.480:     at com.android.internal.util.XmlUtils.convertValueToInt(XmlUtils.java:123)
01-01 12:05:43.480:     at android.content.res.TypedArray.getInt(TypedArray.java:254)
01-01 12:05:43.480:     at android.widget.TextView.<init>(TextView.java:997)
01-01 12:05:43.480:     at android.widget.TextView.<init>(TextView.java:562)
01-01 12:05:43.480:     ... 29 more

最佳答案

事实证明这是三星的一个错误。有一个open bug ,但尚未解决。

这是由我的布局 XML 中的 android:paddingStart="20dp" 引起的。 paddingEnd 也会发生这种情况。

三星希望该值是 int,因此在尝试解析该值时会抛出异常。

我已将其删除并且应用程序已正确加载。

关于android - Inflator 在 Samsung Galaxy Tab 2 上抛出 NumberFormatException : Invalid int: 20. 0dip,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25964129/

相关文章:

android - 为什么要制作我的网站的 Android 应用程序?

android - 如何在 Android 中使用 XQuery 从 XML 文件中查询数据

java - 检测是否启用了开发人员选项的万无一失的方法?

android - 动画期间 ImageView 上的 OnTouchListener,有时不会触发/调用

android - 如何检测 ScrollView 何时到达底部以便我可以将更多项目加载到其中?

android - 同时有两个操作栏(底部和顶部)?

android - 当我在android中单击ListPreference时,如何设置对话框中项目的字体大小?

java - 将 Constraintlayout 更改为 LinearLayout

Android:getSupportActionBar() 在 ActionBarSherlock 库中总是返回 null

android - 使用 Holo-Light 主题不会为 TextView 设置正确的颜色