Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.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
使用Proguard的java核心类的NoClassDefFoundError_Java_Android_Ant_Proguard_Noclassdeffounderror - Fatal编程技术网

使用Proguard的java核心类的NoClassDefFoundError

使用Proguard的java核心类的NoClassDefFoundError,java,android,ant,proguard,noclassdeffounderror,Java,Android,Ant,Proguard,Noclassdeffounderror,我正在开发一款Android应用程序,它集成了Tokbox的OpenTok java sdk。在我使用proguard之前,一切都很好(我需要使用proguard,因为我超出了dex限制) 在运行时,我遇到了以下错误: Could not find method javax.xml.bind.DatatypeConverter.parseBase64Binary, referenced from method com.opentok.api.OpenTokSDK.generate_token V

我正在开发一款Android应用程序,它集成了Tokbox的OpenTok java sdk。在我使用proguard之前,一切都很好(我需要使用proguard,因为我超出了dex限制)

在运行时,我遇到了以下错误:

Could not find method javax.xml.bind.DatatypeConverter.parseBase64Binary, referenced from method com.opentok.api.OpenTokSDK.generate_token
VFY: unable to resolve static method 39502: Ljavax/xml/bind/DatatypeConverter;.parseBase64Binary (Ljava/lang/String;)[B
VFY: replacing opcode 0x71 at 0x003a
threadid=47: thread exiting with uncaught exception (group=0x4184c2a0)
java.lang.NoClassDefFoundError: javax.xml.bind.DatatypeConverter
    at com.opentok.api.OpenTokSDK.generate_token(OpenTokSDK.java:58)
我在
…Java/jre7/lib/rt.jar
中找到了缺少的类,因此我尝试使用以下方法将其包含在我的
proguard.cfg
中:

-libraryjars "C:/Program Files/Java/jre7/lib/rt.jar"
-keep class javax.xml.bind.DatatypeConverter { *; }
但错误依然存在。我还可以确认
DatatypeConverter
不在
seeds.txt
中,也不在
obfuscated.jar

我还尝试下载
jaxb-api-2.2
并将其包含在构建中,但
Ant
抱怨

[dx] Ill-advised or mistaken usage of a core class (java.* or javax.*)
[dx] when not building a core library.
所以我的问题是,如何让proguard将类保存在
rt.jar

这是我的
proguard.cfg

#################################################################################################
# Standard Configuration for Android App
# See http://proguard.sourceforge.net/index.html#manual/examples.html

# -libraryjars "C:/Program Files/Java/jre7/lib/rt.jar"

# -optimizationpasses 2
-dontoptimize
-dontobfuscate
-dontpreverify
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontskipnonpubliclibraryclassmembers
-verbose
-printseeds seeds.txt 
-printusage unused.txt 
-printmapping mapping.txt 
# -allowaccessmodification
# -optimizations !code/simplification/arithmetic,!field/*,!class/merging/*,!code/allocation/variable
-keepattributes *Annotation*
-renamesourcefileattribute SourceFile
-keepattributes SourceFile,LineNumberTable,Signature
-keepdirectories
-repackageclasses ''

-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider

-keep public class * extends android.view.View {
    public <init>(android.content.Context);
    public <init>(android.content.Context, android.util.AttributeSet);
    public <init>(android.content.Context, android.util.AttributeSet, int);
    public void set*(...);
}

-keepclasseswithmembers class * {
    public <init>(android.content.Context, android.util.AttributeSet);
}

-keepclasseswithmembers class * {
    public <init>(android.content.Context, android.util.AttributeSet, int);
}

-keepclassmembers class * extends android.content.Context {
   public void *(android.view.View);
   public void *(android.view.MenuItem);
}

-keepclassmembers class * implements android.os.Parcelable {
    static android.os.Parcelable$Creator CREATOR;
}

-keepclassmembers class * implements java.io.Serializable
{
    private static final java.io.ObjectStreamField[] serialPersistentFields;
    private void writeObject(java.io.ObjectOutputStream);
    private void readObject(java.io.ObjectInputStream);
    java.lang.Object writeReplace();
    java.lang.Object readResolve();
}

-keepclassmembers class **.R$* {
    public static <fields>;
}

-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}

# adding this in to preserve line numbers so that the stack traces
# can be remapped
-renamesourcefileattribute SourceFile
-keepattributes SourceFile,LineNumberTable


#################################################################################################
# For RoboSpice
# See https://groups.google.com/forum/?fromgroups=#!topic/robospice/xGLRbGkLwQU
#Request classes purged by Proguard as they are "empty", others are kept
-keep class com.limbocitizen.android.playground.model.**

#RoboSpice requests and Results must be kept as they are used by reflection via Jackson
-keepclassmembers class com.limbocitizen.android.playground.request.** {
  public void set*(***);
  public *** get*();
  public *** is*();
}


### XML SERIALIZER SETTINGS

-keepclassmembers,allowobfuscation class * {
    @org.simpleframework.xml.* <fields>;
    @org.simpleframework.xml.* <init>(...);
}


### Json SERIALIZER SETTINGS
-keepclassmembers,allowobfuscation class * {
    @org.codehaus.jackson.annotate.* <fields>;
    @org.codehaus.jackson.annotate.* <init>(...);
}

-keepclasseswithmembers class * {
    native <methods>;
}

#################################################################################################
# For Actionbarsherlock
# See http://actionbarsherlock.com/faq.html

-keep class android.support.v4.app.** { *; }
-keep interface android.support.v4.app.** { *; }
-keep class com.actionbarsherlock.** { *; }
-keep interface com.actionbarsherlock.** { *; }

-keepattributes *Annotation*


#################################################################################################
# My Code

-dontwarn **CompatHoneycomb
-dontwarn **CompatCreatorHoneycombMR2
-dontwarn android.support.**
-dontwarn biz.source_code.base64Coder.**
-dontwarn chesspresso.**
-dontwarn org.bouncycastle.**
-dontwarn com.bst.**
-dontwarn com.bugsense.**
-dontwarn com.facebook.**
-dontwarn com.flurry.**
-dontwarn com.google.android.**
-dontwarn com.google.android.youtube.player.**
-dontwarn com.google.common.**
-dontwarn com.google.gson.**
-dontwarn com.nostra13.**
-dontwarn com.octo.android.robospice.persistence.**
-dontwarn com.opentok.**
-dontwarn com.parse.**
-dontwarn com.pubnub.api.**
-dontwarn com.samsung.**
-dontwarn com.sun.istack.internal.**
-dontwarn com.sun.xml.internal.**
-dontwarn com.testflightapp.**
-dontwarn com.tokbox.**
-dontwarn java.awt.**
-dontwarn java.nio.**
-dontwarn java.beans.**
-dontwarn java.util.**
-dontwarn javax.security.**
-dontwarn javax.xml.**
-dontwarn main.java.tokbox.org.**
-dontwarn org.apache.**
-dontwarn org.apache.commons.pool.**
-dontwarn org.ccil.cowan.tagsoup.**
-dontwarn org.codehaus.jackson.**
-dontwarn org.msgpack.**
-dontwarn org.shaded.apache.**
-dontwarn org.slf4j.**
-dontwarn org.springframework.**
-dontwarn org.w3c.dom.**
-dontwarn org.xml.sax.**
-dontwarn tokbox.org.**

-dontnote **ILicensingService

-keep class * extends com.samsung.** { *; }
-keep class android.support.v4.content.Loader { *; }
-keep class android.support.v4.content.Loader$OnLoadCompleteListener { *; }
-keep class com.createsend.util.jersey.JsonProvider { *; }
-keep class com.google.android.gms.maps.GoogleMapOptions { *; }
-keep class com.google.android.gms.maps.model.CameraPosition { *; }
-keep class com.opentok.** { *; }
-keep class com.tokbox.** { *; }
-keep class com.parse.** { *; }
-keep class com.samsung.** { *; }
-keep class javax.xml.** { *; }
-keep class javax.xml.bind.DatatypeConverter { *; }
-keep class main.java.tokbox.org.** { *; }
-keep class org.codehaus.jackson.** { *; }
-keep class org.osgi.framework.** { *; }
-keep class tokbox.org.** { *; }
#################################################################################################
#Android应用程序的标准配置
#看http://proguard.sourceforge.net/index.html#manual/examples.html
#-libraryjars“C:/Program Files/Java/jre7/lib/rt.jar”
#-优化过程2
-dontoptimize
-顿托夫斯卡特
-不要翻转
-dontusemixedcaseclassnames
-DontskipnonPublicLibraryClass
-dontskipnonpubliclibraryclassmembers
-冗长的
-printseeds.txt
-printusage unused.txt
-printmapping.txt
#-允许访问修改
#-优化!代码/简化/算术,!字段/*,!类/合并/*,!代码/分配/变量
-keepattributes*注释*
-重命名SourceFileAttribute源文件
-keepattributes源文件,行号表,签名
-保留董事
-重新打包类“”
-keep public class*扩展android.app.Activity
-keep public class*扩展android.app.Application
-keep public class*扩展了android.app.Service
-keep public class*扩展了android.content.BroadcastReceiver
-keep public class*扩展了android.content.ContentProvider
-keep public class*扩展了android.view.view{
public(android.content.Context);
public(android.content.Context、android.util.AttributeSet);
public(android.content.Context,android.util.AttributeSet,int);
公共无效集*(…);
}
-keepclassswithmembers类*{
public(android.content.Context、android.util.AttributeSet);
}
-keepclassswithmembers类*{
public(android.content.Context,android.util.AttributeSet,int);
}
-keepclassmembers类*扩展了android.content.Context{
public void*(android.view.view);
public void*(android.view.MenuItem);
}
-keepclassmembers类*实现android.os.Parcelable{
静态android.os.Parcelable$Creator;
}
-keepclassmembers类*实现java.io.Serializable
{
私有静态final java.io.ObjectStreamField[]serialPersistentFields;
私有void writeObject(java.io.ObjectOutputStream);
私有void readObject(java.io.ObjectInputStream);
java.lang.Object WriterReplace();
java.lang.Object readResolve();
}
-keepclassmembers类**.R$*{
公共静态;
}
-keepclassmembers枚举*{
公共静态**[]值();
公共静态**valueOf(java.lang.String);
}
#添加此项以保留行号,以便堆栈跟踪
#可以重新映射
-重命名SourceFileAttribute源文件
-keepattributes源文件,LineNumberTable
#################################################################################################
#机器人世界
#看https://groups.google.com/forum/?fromgroups=#!topic/robospice/xGLRbGkLwQU
#请求类被Proguard清除,因为它们是“空的”,其他的则被保留
-保持类com.limbocitizen.android.playder.model**
#RoboSpice请求和结果必须保留,因为它们是通过Jackson反射使用的
-keepclassmembers类com.limbocitizen.android.playde.request.*{
公共无效集*(***);
公众***获得*();
公共***是*();
}
###XML序列化程序设置
-keepclassmembers,AllowFusion类*{
@org.simpleframework.xml.*;
@org.simpleframework.xml.*(…);
}
###Json序列化程序设置
-keepclassmembers,AllowFusion类*{
@org.codehaus.jackson.annotate.*;
@org.codehaus.jackson.annotate.*(…);
}
-keepclassswithmembers类*{
本地人;
}
#################################################################################################
#给Actionbarsherlock
#看http://actionbarsherlock.com/faq.html
-keep class android.support.v4.app.*{*;}
-保留android.support.v4.app接口。**{*;}
-保持类com.actionbarsherlock.*{*;}
-保留接口com.actionbarsherlock.*{*;}
-keepattributes*注释*
#################################################################################################
#我的代码
-唐特沃恩**
-dontwarn**CompatCreator蜂窝MR2
-dontwarn android.support**
-dontwarn biz.source_code.base64编码器**
-dontwarn chesspresso**
-dontwarn org.bouncycastle**
-dontwarn com.bst**
-dontwarn com.bugsense**
-dontwarn com.facebook**
-dontwarn com.flurry**
-dontwarn com.google.android**
-dontwarn com.google.android.youtube.player**
-dontwarn com.google.common**
-dontwarn com.google.gson**
-dontwarn com.nostra13**
-dontwarn com.octo.android.robospice.persistence**
-dontwarn com.opentok**
-dontwarn com.parse**
-dontwarn com.publinub.api**
-dontwarn com.samsung**
-dontwarn com.sun.istack.internal**
-dontwarn com.sun.xml.internal**
-dontwarn com.testflightapp**
-dontwarn com.tokbox**
-dontwarn java.awt**
-dontwarn java.nio**
-dontwarn java.bean**
-dontwarn java.util**
-dontwarn javax.security**
-dontwarn javax.xml**
-dontwarn main.java.tokbox.org**
-dontwarn org.apache**
-dontwarn org.apache.commons.pool**
-dontwarn org.ccil.cowan.tagsoup**
-dontwarn org.codehaus.jackson**
-dontwarn org.msgpack**
-dontwarn org.shade.apache**
-dontwarn org.slf4j**
-dontwarn org.springframework**
-dontwarn org.w3c.dom**
-dontwarn org.xml.sax**
-dontwarn tokbox.org**
-请勿使用**ILicensingService
-keep class*扩展com.samsung.*{*;}
-k
 -keep class com.opentok.** { *; }
 -dontwarn com.opentok.** 
 -keep class twitter4j.** { *; }
 -dontwarn twitter4j.** 
#-injars bin/classes

#-injars libs

#-outjars bin/classes-processed.jar



-libraryjars <java.home>/jre/lib/rt.jar

-libraryjars <java.home>/lib/tools.jar

-libraryjars /libs/twitter4j-core-3.0.3.jar