gpt4 book ai didi

android - POPUPMENU 图标未在已发布的 apk 版本中显示

转载 作者:行者123 更新时间:2023-11-29 01:32:05 25 4
gpt4 key购买 nike

我正在按照本教程进行操作,当我处于 Debug模式时它工作得很好,但是当我在 Release模式下生成 apk 时,图标将不起作用,我的意思是那些图标不会出现,为什么??

这是我正在关注的教程的链接 Tutorial here

custom_menu.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/....."
android:title="------"
android:icon="....."
app:showAsAction="always"/>
<item android:id="@+id/....."
android:title="------"
android:icon="....."
app:showAsAction="always"/>
<item android:id="@+id/....."
android:title="------"
android:icon="....."
app:showAsAction="always"/>
<item android:id="@+id/....."
android:title="------"
android:icon="....."
app:showAsAction="always"/>
</menu>

这是java代码

  View menuItemView = getActivity().findViewById(R.id.overflow);
PopupMenu popupMenu = new PopupMenu(getActivity(), menuItemView);
popupMenu.inflate(R.menu.custom_menu);
//
Object menuHelper;
Class[] argTypes;
Field fMenuHelper = null;
try {
fMenuHelper = PopupMenu.class.getDeclaredField("mPopup");
fMenuHelper.setAccessible(true);
menuHelper = fMenuHelper.get(popupMenu);
argTypes = new Class[]{boolean.class};
menuHelper.getClass().getDeclaredMethod("setForceShowIcon", argTypes).invoke(menuHelper, true);
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}

最佳答案

发生这种情况是因为混淆器混淆了 PopupMenu 类名。要使图标在发布的 apk 中工作,请将以下代码包含到您的 proguard.cfg 文件中:

-keepclassmembernames class android.support.v7.widget.PopupMenu {
private android.support.v7.internal.view.menu.MenuPopupHelper mPopup; }

-keepclassmembernames class android.support.v7.internal.view.menu.MenuPopupHelper {
public void setForceShowIcon(boolean); }

关于android - POPUPMENU 图标未在已发布的 apk 版本中显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30617582/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com