代码之家  ›  专栏  ›  技术社区  ›  eMgz

模糊(proguard)会导致MIDlet故障吗?

  •  1
  • eMgz  · 技术社区  · 15 年前

    我试图用PROGORD来混淆Java MIDLE。它在PC上运行正常,但是,当我在电话上运行它时,程序打开,连接到服务器,然后冻结。如果我禁用模糊,它会在电话上再次正常运行。我尝试过所有应用程序的模糊级别(NetBeans的7、8和9级),但它们似乎都不能正常工作,而且我不能在没有模糊的情况下发布这个应用程序以供商业使用。此外,编译器还会发出一些警告:

    Note: duplicate definition of library class [java.io.ByteArrayOutputStream]
    Note: there were 14 duplicate class definitions.
    

    但我不知道这是否真的是个问题。有人知道怎么回事吗?下面列出了模糊器参数:

    Obfuscator Arguments (7):
        -dontusemixedcaseclassnames
        -default package ''
        -keep public class ** {
            public *;
        }
    
    Obfuscator Arguments (8): same as (7) plus -overloadaggressively.
    
    Obfuscator Arguments (9): same as (8) but
        -keep public class ** extends javax.microedition.midlet.MIDlet {
            public *;
        }
    instead.
    

    谢谢。

    1 回复  |  直到 15 年前
        1
  •  1
  •   martin clayton egrunin    15 年前

    模糊可以破坏东西。如果没有封装的示例代码,就很难准确地说出可能发生的错误。一个例子 能够 错误的做法是,如果您在代码中按名称加载类-模糊类将具有不同的名称,因此将找不到。

    你提到的信息 could be indicative of the problem -您必须在您的路径上多次使用这些类。 你提到的那门课和你遇到的问题有关吗?仔细查看正在使用的JAR,确保应用程序中包含正确(和最少)的类集。在 CLDC 与桌面上的不同 JDK .

    推荐文章