Nutiteq映射JavaMe混淆错误

时间:2013-02-28 20:50:33

标签: netbeans java-me maps obfuscation proguard

我有一个使用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

1 个答案:

答案 0 :(得分:0)

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

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