Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 安卓:为什么我的类仍然是模糊的,尽管有进步_Java_Android_Proguard - Fatal编程技术网

Java 安卓:为什么我的类仍然是模糊的,尽管有进步

Java 安卓:为什么我的类仍然是模糊的,尽管有进步,java,android,proguard,Java,Android,Proguard,在包/ui/cinema/model/中,有几个类我不希望它们被混淆,因此我在proguard配置文件中声明以下几行: -保持公共类com.example.ui.cinema.model.*{*;} -保持公共类com.example.ui.cinema.model.*$*{*;} 除了“CinemaCityModel”,该文件夹中的大多数类都运行良好: 我反编译了apk,找不到CinemaCityModel。但它在我的源代码包中。它很模糊,我不知道为什么。有人见过这个吗?请帮助,谢谢:)pro

在包/ui/cinema/model/中,有几个类我不希望它们被混淆,因此我在proguard配置文件中声明以下几行:

-保持公共类com.example.ui.cinema.model.*{*;}

-保持公共类com.example.ui.cinema.model.*$*{*;}

除了“CinemaCityModel”,该文件夹中的大多数类都运行良好:


我反编译了apk,找不到CinemaCityModel。但它在我的源代码包中。它很模糊,我不知道为什么。有人见过这个吗?请帮助,谢谢:)

proguard中的
-keep
关键字仅在类未使用时防止类被优化


为了防止类被混淆,您需要使用
-dontobfuscate

您的配置确实保留了这个类(事实上第一行就足够了,因为它意味着第二行)。您应该可以在proguard/seeds.txt中看到它


您应该仔细检查:可能输入中也缺少它,因为它没有正确编译。或者在这种情况下,可能它不是公共的,或者它毕竟在不同的包中。或者您的反编译器无法写出反编译的类。

谢谢,sddamico。但在检查了Proguard手册后,它说“指定不混淆输入类文件。默认情况下,应用模糊处理;类和类成员将收到新的短随机名称,但“各种保留”选项列出的名称除外。对调试有用的内部属性(例如源文件名、变量名和行号)将被删除。“……因此我认为不应混淆我的CinemaCityModel。有趣的是,该包中的另一个类适用于此规则,CinemaCityModel除外。。
package com.example.ui.cinema.model;
public class CinemaCityModel
{
    public static final String CUR_CITY_NAME_SORT="CURRENT";
    public static final String HOT_CITY_NAME_SORT="HOT";

    private String CityId;
    private String CityName; 
    private String NameSort; 

    public String getCityId()
    {
        return CityId;
    }

    public void setCityId(String cityId)
    {
        CityId = cityId;
    }

    public String getCityName()
    {
        return CityName;
    }

    public void setCityName(String cityName)
    {
        CityName = cityName;
    }

    public String getNameSort()
    {
        return NameSort;
    }

    public void setNameSort(String nameSort)
    {
        NameSort = nameSort;
    }

}