0

我有一个使用 Nutiteq 地图的 midlet,我在 Netbeans 中开发了它。我将库 jar 添加到项目中。一切正常。问题是当我混淆时,我得到了这个:

Note: duplicate definition of library class [javax.microedition.media.control.ToneControl]
Note: duplicate definition of library class [javax.microedition.media.control.VolumeControl]
Note: duplicate definition of library class [javax.microedition.media.Control]
Note: duplicate definition of library class [javax.microedition.media.Controllable]
Note: duplicate definition of library class [javax.microedition.media.Manager]
Note: duplicate definition of library class [javax.microedition.media.MediaException]
Note: duplicate definition of library class [javax.microedition.media.Player]
Note: duplicate definition of library class [javax.microedition.media.PlayerListener]
Note: duplicate definition of library class [javax.microedition.media.protocol.DataSource]
Note: there were 9 duplicate class definitions.
Warning: com.nutiteq.fs.MotoFileSystem: can't find referenced class com.motorola.io.FileConnection
Warning: com.nutiteq.fs.MotoFileSystem: can't find referenced class com.motorola.io.FileSystemRegistry
Warning: com.nutiteq.fs.MotoFileSystem: can't find referenced class com.motorola.io.FileSystemRegistry
Warning: com.nutiteq.fs.MotoFileSystem: can't find referenced class com.motorola.io.FileConnection
Warning: com.nutiteq.fs.MotoFileSystem: can't find referenced class com.motorola.io.FileConnection
Warning: com.nutiteq.fs.MotoFileSystem: can't find referenced class com.motorola.io.FileConnection
Warning: com.nutiteq.fs.MotoFileSystem: can't find referenced class com.motorola.io.FileConnection
Warning: com.nutiteq.fs.IDENFileSystem: can't find referenced class com.motorola.io.file.FileConnection
Warning: com.nutiteq.fs.IDENFileSystem: can't find referenced class com.motorola.io.file.FileConnection
Warning: com.nutiteq.fs.IDENFileSystem: can't find referenced class com.motorola.io.file.FileConnection
Warning: com.nutiteq.fs.IDENFileSystem: can't find referenced class com.motorola.io.file.FileConnection
Warning: com.nutiteq.fs.IDENFileSystem: can't find referenced class com.motorola.io.file.FileConnection
Note: com.sun.lwuit.impl.midp.GameCanvasImplementation: can't find dynamically referenced class com.siemens.mp.game.Light
Note: com.sun.lwuit.impl.midp.GameCanvasImplementation: can't find dynamically referenced class com.motorola.phonebook.PhoneBookRecord
Note: com.sun.lwuit.impl.midp.GameCanvasImplementation: can't find dynamically referenced class com.nokia.mid.ui.FullCanvas
Note: com.sun.lwuit.impl.midp.GameCanvasImplementation: can't find dynamically referenced class net.rim.device.api.system.Application
Note: com.sun.lwuit.impl.midp.GameCanvasImplementation: can't find dynamically referenced class com.mot.iden.util.Base64
Note: com.sun.lwuit.impl.midp.GameCanvasImplementation: can't find dynamically referenced class mmpp.media.MediaPlayer
  You should check if you need to specify additional program jars.
Warning: there were 12 unresolved references to classes or interfaces.
     You may need to specify additional library jars (using '-libraryjars'),
     or perhaps the '-dontskipnonpubliclibraryclasses' option.
Error: Please correct the above warnings first.
Note: there were 6 unresolved dynamic references to classes or interfaces.

我正在使用 lwuit 库,但在包含地图库之前我没有任何问题。

我做了这个页面所说的:http ://www.nutiteq.com/j2me-maps-forum

现在我明白了:

.
.
.
te: duplicate definition of library class [com.sun.cldc.i18n.uclc.DefaultCaseConverter]
Note: duplicate definition of library class [com.sun.j2mews.xml.rpc.OperationImpl]
Note: duplicate definition of library class [com.sun.j2mews.xml.rpc.SOAPDecoder]
Note: duplicate definition of library class [com.sun.j2mews.xml.rpc.SOAPEncoder]
Note: duplicate definition of library class [com.sun.ukit.jaxp.Parser]
Note: duplicate definition of library class [com.sun.ukit.jaxp.ParserFactory]
Note: duplicate definition of library class [com.sun.ukit.jaxp.ReaderUTF16]
Note: duplicate definition of library class [com.sun.ukit.jaxp.ReaderUTF8]
Note: there were 564 duplicate class definitions.
Note: com.sun.lwuit.impl.midp.GameCanvasImplementation: can't find dynamically referenced class com.motorola.phonebook.PhoneBookRecord
Note: com.sun.lwuit.impl.midp.GameCanvasImplementation: can't find dynamically referenced class mmpp.media.MediaPlayer
Note: there were 2 unresolved dynamic references to classes or interfaces.
  You should check if you need to specify additional program jars.
Unexpected error while evaluating instruction:
Class       = [a]
Method      = [a$623fafe4(Ljava/lang/String;CI)[Ljava/lang/String;]
Instruction = [85] iload_3 v3
Exception   = [java.lang.NullPointerException] (null)
Unexpected error while performing partial evaluation:
Class       = [a]
Method      = [a$623fafe4(Ljava/lang/String;CI)[Ljava/lang/String;]
Exception   = [java.lang.NullPointerException] (null)
Error: null
4

1 回答 1

0

重复的类通常是无害的,但它们表明您的配置指定了 -libraryjars 选项,其中包含两次包含相同类的 jar。删除这些重复项会更干净。否则,您可以指定 -dontnote 来隐藏这些注释。

意外错误是 ProGuard 中的一个错误。您应该确保您使用的是最新版本(此时为 4.8 或 4.9 beta)。如果问题仍然存在,您应该在ProGuard 网站上报告或邮寄给我,并附上一个允许我重现问题的小项目。您可以通过使用 -dontoptimize 关闭优化来解决它。

于 2013-03-01T10:26:38.720 回答