2016-12-08 24 views
-1

不要なコードを削除するためにProGuardを実装しました。しかし、アプリの起動後、次のエラーが表示されます。 -java.lang.NoClassDefFoundError:Ljavax/naming/ldap/LdapNameの解決に失敗しました

java.lang.NoClassDefFoundError: Failed resolution of: Ljavax/naming/ldap/LdapName; 
at b.a.b.e.d.a.b(Unknown Source) 
at b.a.b.e.d.a.a(Unknown Source) 
at b.a.b.e.d.a.a(Unknown Source) 
at b.a.b.e.d.a.a(Unknown Source) 
at b.a.b.e.d.f.a(Unknown Source) 
at b.a.b.e.d.f.a(Unknown Source) 
at b.a.b.e.d.f.a(Unknown Source) 
at b.a.b.h.c.h.a(Unknown Source) 
at b.a.b.h.c.p.a(Unknown Source) 
at b.a.b.h.b.o.a(Unknown Source) 
at b.a.b.h.b.o.a(Unknown Source) 
at b.a.b.h.b.a.a(Unknown Source) 
at b.a.b.h.b.h.a(Unknown Source) 
at b.a.b.h.b.h.a(Unknown Source) 
at b.a.b.h.b.h.execute(Unknown Source) 
at com.c.a.ae.a(Unknown Source) 
at com.c.a.b.a(Unknown Source) 
at com.c.a.aa.run(Unknown Source) 
at java.lang.Thread.run(Thread.java:818) 
Caused by: java.lang.ClassNotFoundException: Didn't find class "javax.naming.ldap.LdapName" on path: DexPathList[[zip file "/data/app/bd.com.chalo-1/base.apk"],nativeLibraryDirectories=[/data/app/bd.com.chalo-1/lib/arm64, /data/app/bd.com.chalo-1/base.apk!/lib/arm64-v8a, /vendor/lib64, /system/lib64]] 
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:511) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:469) 
... 19 more 
Suppressed: java.lang.ClassNotFoundException: javax.naming.ldap.LdapName 
    at java.lang.Class.classForName(Native Method) 
    at java.lang.BootClassLoader.findClass(ClassLoader.java:781) 
    at java.lang.BootClassLoader.loadClass(ClassLoader.java:841) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:504) 
    ... 20 more 
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available 

ここで何をすればいいですか?私の図書館と何か関係がありますか? 、

「ProGuardのツールが収縮最適化し、未使用のコードを削除し、意味的にあいまいな名前のクラス、フィールド、メソッドの名前を変更することで、あなたのコードを難読化:ProGuardのため

+0

あなたmapping.txtで帰を使用して、場所を確認する必要がありをエラーが発生します。次に、プロガードルールを調整します。 – EarlOfEgo

答えて

0

Androidのドキュメントはそうのようにそれを説明しています。その結果、リバースエンジニアリングが難しい.apkファイルのサイズが小さくなります。 ProGuardを実行することは完全にオプションですが、強くお勧めします。」

あなたのアプリにサードパーティ製のライブラリ、ブロードキャストレシーバ、カスタムウィジェットなどが含まれていると問題が発生する可能性があります。このクラスを追加するにはproguardルールを追加する必要がありますクラスはAPKバージョンでコンパイルされません、あなたはProGuardの詳細については、エラーに

を取得し、それの使用は、このリンクを参照のランタイムは、そうでない場合:

http://omgitsmgp.com/2013/09/09/a-conservative-guide-to-proguard-for-android/

を使用できる標準ProGuardのルールの形式があります

# Add any project specific keep options here: 

# If your project uses WebView with JS, uncomment the following 
# and specify the fully qualified class name to the JavaScript interface 
# class: 
#-keepclassmembers class fqcn.of.javascript.interface.for.webview { 
# public *; 
#} 

# Obfuscation parameters: 
#-dontobfuscate 
-useuniqueclassmembernames 
-keepattributes SourceFile,LineNumberTable 
-allowaccessmodification 

# Ignore warnings: 
#-dontwarn org.mockito.** 
#-dontwarn org.junit.** 
#-dontwarn com.robotium.** 
#-dontwarn org.joda.convert.** 

# Ignore warnings: We are not using DOM model 
-dontwarn com.fasterxml.jackson.databind.ext.DOMSerializer 
# Ignore warnings: https://github.com/square/okhttp/wiki/FAQs 
-dontwarn com.squareup.okhttp.internal.huc.** 
# Ignore warnings: https://github.com/square/okio/issues/60 
-dontwarn okio.** 
# Ignore warnings: https://github.com/square/retrofit/issues/435 
-dontwarn com.google.appengine.api.urlfetch.** 

# Keep the pojos used by GSON or Jackson 
-keep class com.futurice.project.models.pojo.* { ; } 

# Keep GSON stuff 
-keep class sun.misc.Unsafe { *; } 
-keep class com.google.gson.* { ; } 

-keep public class Socket 

# Keep Jackson stuff 
-keep class org.codehaus.* { ; } 
-keep class com.fasterxml.jackson.annotation.* { ; } 

# Keep these for GSON and Jackson 
-keepattributes Signature 
-keepattributes Annotation 
-keepattributes EnclosingMethod 

# Keep Retrofit 
-keep class retrofit.* { ; } 
-keepclasseswithmembers class * { 
    @retrofit.** *; 
} 
-keepclassmembers class * { 
    @retrofit.** *; 
} 
-keep public class com.mikhaellopez:circularimageview:2.1.1.* { ; } 
# Keep Picasso 
-keep class com.squareup.picasso.* { ; } 
-keepclasseswithmembers class * { 
    @com.squareup.picasso.** *; 
} 
-keepclassmembers class * { 
    @com.squareup.picasso.** *; 
} 

標準形式の詳細について この参照...あなたのProGuardのファイルにこのルールを追加します:https://github.com/futurice/android-best-practices/blob/master/templates/rx-architecture/app/proguard-rules.pro

と、この: https://gist.github.com/Jackgris/c4a71328b1ae346cba04

関連する問題