在此answer in order to convert a APK file into a JAR file之后,我尝试删除JAR文件(例如GlassVoice.apk)中的死代码,以便删除除非方法并避免此error (无法执行dex: method ID不在0,0xffff: 65536中)。
我创建了一个应用程序示例,包括我唯一的JAR文件和我需要的所有方法。
为了做到这一点,我使用了Proguard,但是当我尝试导出我的应用程序时,Proguard要求我减少死代码。
不幸的是,它并不顺利(正如你在下面看到的)。我只有一个JAR文件,没有更多了。
这是我的proguard.cfg:
-injars libs/GlassVoice-dex2jar.jar
-outjars GlassVoice-dex2jar_out.jar
-printmapping mapping.txt
-verbose
-dontwarn android.support.v4.**
-dontwarn sun.misc.**下面是我的输出:
[...]
[2014-06-23 18:07:58 - HotWord] Warning: com.google.glass.widget.DynamicSizeTextView: can't find referenced class com.google.android.glass.hidden.HiddenTextView
[2014-06-23 18:07:58 - HotWord] Warning: com.google.glass.widget.DynamicSizeTextView: can't find referenced class com.google.android.glass.hidden.HiddenTextView
[2014-06-23 18:07:58 - HotWord] Warning: com.google.glass.widget.FastScrollOverlay: can't find referenced method 'float getZoomOutFactor()' in class com.google.android.glass.widget.CardScrollView
[2014-06-23 18:07:58 - HotWord] Warning: com.google.glass.widget.FastScrollOverlay: can't find referenced method 'float getScrollPosition()' in class com.google.android.glass.widget.CardScrollView
[2014-06-23 18:07:58 - HotWord] Warning: com.google.glass.widget.FastScrollOverlay: can't find referenced method 'float getZoomScale()' in class com.google.android.glass.widget.CardScrollView
[2014-06-23 18:07:58 - HotWord] Warning: com.google.glass.widget.FastScrollOverlay: can't find referenced method 'android.view.View getItemViewForChildAt(int)' in class com.google.android.glass.widget.CardScrollView
[2014-06-23 18:07:58 - HotWord] Warning: com.google.glass.widget.VolumeControlDialog: can't find referenced method 'com.google.android.glass.widget.CardScrollGesturer getGesturer()' in class com.google.android.glass.widget.CardScrollView
[2014-06-23 18:07:58 - HotWord] Warning: com.google.glass.widget.VolumeControlDialog: can't find referenced class com.google.android.glass.widget.CardScrollGesturer
[2014-06-23 18:07:58 - HotWord] Warning: com.google.glass.widget.VolumeControlDialog: can't find referenced class com.google.android.glass.widget.CardScrollGesturer
[2014-06-23 18:07:58 - HotWord] You should check if you need to specify additional program jars.
[2014-06-23 18:07:58 - HotWord] Warning: there were 163 unresolved references to classes or interfaces.
[2014-06-23 18:07:58 - HotWord] You may need to specify additional library jars (using '-libraryjars').
[2014-06-23 18:07:58 - HotWord] Warning: there were 51 unresolved references to program class members.
[2014-06-23 18:07:58 - HotWord] Your input classes appear to be inconsistent.
[2014-06-23 18:07:58 - HotWord] You may need to recompile them and try again.
[2014-06-23 18:07:58 - HotWord] Alternatively, you may have to specify the option
[2014-06-23 18:07:58 - HotWord] '-dontskipnonpubliclibraryclassmembers'.
[2014-06-23 18:07:58 - HotWord] java.io.IOException: Please correct the above warnings first.
[2014-06-23 18:07:58 - HotWord] at proguard.Initializer.execute(Initializer.java:321)
[2014-06-23 18:07:58 - HotWord] at proguard.ProGuard.initialize(ProGuard.java:211)
[2014-06-23 18:07:58 - HotWord] at proguard.ProGuard.execute(ProGuard.java:86)
[2014-06-23 18:07:58 - HotWord] at proguard.ProGuard.main(ProGuard.java:492)有什么问题吗?
发布于 2014-09-22 19:58:42
你需要这个。
-dontwarn com.google.android.glace.**
https://stackoverflow.com/questions/24371677
复制相似问题