java.lang.NumberFormatException: Invalid int: "res/drawable-hdpi-v4/ic_action_share.png"


有一个

ShareActionProvider 按钮,操作栏上有自定义图像。此外,还修改了 ShareActionProvider 代码(如何隐藏共享操作提供程序附近的共享操作(使用最多)图标?,https://gist.github.com/saulpower/10557956)。 在几部手机上(三星银河S3 - 安卓4.1,华为G730-U10 - 安卓4.2)崩溃发生。

文件ic_action_share.png存在于文件夹中 drawable-xxhdpi, drawable-xhdpi, drawable-hdpi, drawable-mdpi.为什么 Android 从 v4 文件夹请求此图像(java.lang.NumberFormatException: Invalid int: "res/drawable-xhdpi-v4/ic_action_share.png")?

叠:

android.view.InflateException: Binary XML file line #8: Error inflating class android.widget.ImageButton
at android.view.LayoutInflater.createView(LayoutInflater.java:613)
at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:660)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
at com.android.internal.app.ActionBarImpl.setCustomView(ActionBarImpl.java:330)
...
Caused by: java.lang.NumberFormatException: Invalid int: "res/drawable-hdpi-v4/ic_action_share.png"
at java.lang.Integer.invalidInt(Integer.java:138)
at java.lang.Integer.parse(Integer.java:375)
at java.lang.Integer.parseInt(Integer.java:366)
at com.android.internal.util.XmlUtils.convertValueToInt(XmlUtils.java:123)
at android.content.res.TypedArray.getInt(TypedArray.java:260)
at android.widget.ImageView.<init>(ImageView.java:151)
at android.widget.ImageButton.<init>(ImageButton.java:87)
at android.widget.ImageButton.<init>(ImageButton.java:83)
java.lang.NumberFormatException: Invalid int: "res/drawable-xhdpi-v4/ic_action_share.png"
at java.lang.Integer.invalidInt(Integer.java:138)
at java.lang.Integer.parse(Integer.java:375)
at java.lang.Integer.parseInt(Integer.java:366)
at com.android.internal.util.XmlUtils.convertValueToInt(XmlUtils.java:123)
at android.content.res.TypedArray.getInt(TypedArray.java:254)
at android.view.View.<init>(View.java:3561)
at android.view.ViewGroup.<init>(ViewGroup.java:432)
at com.example.trace.CustomShareActionProvider.ActivityChooserView.<init>(Unknown Source)
at com.example.trace.CustomShareActionProvider.ActivityChooserView.<init>(Unknown Source)
at com.example.trace.CustomShareActionProvider.ActivityChooserView.<init>(Unknown Source)
at com.example.trace.CustomShareActionProvider.ShareActionProvider.onCreateActionView(Unknown Source)
at android.support.v4.view.j.onCreateActionView(Unknown Source)
at android.support.v7.internal.view.menu.y.onCreateActionView(Unknown Source)
at com.android.internal.view.menu.MenuItemImpl.getActionView(MenuItemImpl.java:580)
at android.support.v7.internal.view.menu.t.getActionView(Unknown Source)
at android.support.v4.view.y.a(Unknown Source)
at com.example.trace.p.a(Unknown Source)
at android.support.v4.app.Fragment.b(Unknown Source)
at android.support.v4.app.n.a(Unknown Source)
at android.support.v4.app.h.onCreatePanelMenu(Unknown Source)
at android.support.v7.a.g.a(Unknown Source)
at android.support.v7.a.m.a(Unknown Source)
at android.support.v7.a.g.onCreatePanelMenu(Unknown Source)
at android.support.v7.a.n.onCreatePanelMenu(Unknown Source)
at com.android.internal.policy.impl.PhoneWindow.preparePanel(PhoneWindow.java:445)
at com.android.internal.policy.impl.PhoneWindow.invalidatePanelMenu(PhoneWindow.java:819)
at android.app.Activity.invalidateOptionsMenu(Activity.java:2690)
...

风格.xml

<style name="app_theme" parent="@style/Theme.AppCompat.Light">
    <!-- Support library compatibility -->
    <item name="actionBarWidgetTheme">@style/CustomShareIcon</item>
    ...
    <item name="android:actionBarWidgetTheme" tools:targetApi="14">@style/CustomShareIcon</item>
</style>
<style name="CustomShareIcon" parent="@style/Theme.AppCompat">
    <item name="actionModeShareDrawable">@drawable/ic_action_share</item>
    <item name="*android:actionModeShareDrawable">@drawable/ic_action_share</item>
</style>

试试这个

res/drawable-hdpi-v4/文件夹中添加图像ic_action_share.png

V-4 是版本 4,因此它只能自动访问 V-4 文件夹。

最新更新