2016-05-05 8 views
6

にキャストすることはできません。私はProguardを試してみるときにこの例外を解決しようとしています私たちのアンドロイドアプリはベータ版になる前に。未知の翻訳SimException:dx.rop.cst.CstInterfaceMethodRefをcom.android.dx.rop.cst.CstMethodRef(Proguard)

我々が取得している例外は次のとおりです。私たちは、このエラーがProguarding中に発生している場所を追跡しようとしているが、障害が発生している場所を見つける方法を知ってProGuardのに非常に身近なものされていません

Error:Uncaught translation error: com.android.dx.cf.code.SimException: com.android.dx.rop.cst.CstInterfaceMethodRef cannot be cast to com.android.dx.rop.cst.CstMethodRef 
Possible causes for this unexpected error include:<ul><li>Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.) 
<a href="syncProject">Re-download dependencies and sync project (requires network)</a></li><li>The state of a Gradle build process (daemon) may be corrupt. Stopping all Gradle daemons may solve this problem. 
<a href="stopGradleDaemons">Stop Gradle build processes (requires restart)</a></li><li>Your project may be using a third-party plugin which is not compatible with the other plugins in the project or the version of Gradle requested by the project.</li></ul>In the case of corrupt Gradle processes, you can also try closing the IDE and then killing all Java processes. 

このトランスミッションエラーの原因は何ですか?キャスト例外が私のコードのどこにあるのか分かっていれば、それを修正することができます。オンラインでGoogle Playサービスが他のSDKで問題を引き起こす可能性があるとの言及がありますが、既に依存ツールを使用しており、すべてのSDKで8.4.0に正しくリンクしていることがわかりました。

私たちのアプリでは、multiDexEnabled trueフラグも使用しています。

# Add project specific ProGuard rules here. 
# By default, the flags in this file are appended to flags specified 
# in /development/adt-bundle-mac/sdk/tools/proguard/proguard-android.txt 
# You can edit the include path and order by changing the proguardFiles 
# directive in build.gradle. 
# 
# For more details, see 
# http://developer.android.com/guide/developing/tools/proguard.html 

# 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 *; 
#} 

# (1)Annotations and signatures 
-keepattributes *Annotation*,EnclosingMethod,Signature,InnerClasses 

-keepnames class com.fasterxml.jackson.** { *; } 

# (2)Simple XML 
-keep public class org.simpleframework.**{ *; } 
-keepclasseswithmembernames class javax.xml.stream.** { *; } 
### Simple XML SERIALIZER SETTINGS 
-keepclassmembers,allowobfuscation class * { 
    @org.simpleframework.xml.* <fields>; 
    @org.simpleframework.xml.* <init>(...); 
} 
-keep class javax.xml.stream.**{ *; } 
-keep class org.simpleframework.xml.**{ *; } 

# Ignore warnings: We are not using DOM model 
#-dontwarn com.fasterxml.jackson.databind.ext.DOMSerializer 
-dontwarn com.fasterxml.jackson.databind.ext.* 
-dontwarn org.apache.http.** 

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

# Keep Jackson stuff 
-dontwarn org.codehaus.** 
-dontwarn com.bea.xml.stream.** 
-dontwarn com.google.android.gms.* 
-dontwarn javax.xml.stream.* 
-dontwarn javax.annotation.** 
-dontwarn sun.misc.Unsafe 
-dontwarn com.google.j2objc.annotations.Weak 
-dontwarn java.lang.ClassValue 
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement 
-dontwarn okio.* 
-dontwarn org.apache.** 
-dontwarn org.simpleframework.xml.stream.* 
-dontwarn rx.internal.util.unsafe.* 

# Keep leakcanary stuff 
-dontwarn com.squareup.haha.** 
-dontwarn com.squareup.leakcanary.** 

# Marshmallow removed Notification.setLatestEventInfo() 
-dontwarn android.app.Notification 

# warnings 
-dontwarn butterknife.internal.* 
-dontwarn com.conviva.streamerProxies.* 
-dontwarn com.anvato.** 
-dontwarn com.apptentive.android.sdk.** 
-dontwarn com.comscore.instrumentation.** 
-dontwarn com.squareup.okhttp.** 
-dontwarn com.urbanairship.json.** 
-dontwarn tv.freewheel.renderers.html.* 

# notes 
-dontnote com.android.vending.** 
-dontnote com.anvato.** 
-dontnote com.conviva.** 
-dontnote com.facebook.stetho.inspector.** 
-dontnote com.google.android.gms.** 
-dontnote com.google.gson.internal.** 
-dontnote com.google.vending.** 
-dontnote com.squareup.okhttp.** 
-dontnote com.urbanairship.** 
-dontnote tv.freewheel.extension.medialets.** 
-dontnote org.apache.** 
-dontnote org.json.** 

#Note: duplicate definition of library class 
-dontnote android.net.http.** 


# For RxJava: 
-dontwarn org.mockito.** 
-dontwarn org.junit.** 
-dontwarn org.robolectric.** 
-dontwarn rx.md.internal.schedulers.NewThreadWorker 

#-ignorewarnings 

-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.app.backup.BackupAgentHelper 
-keep public class * extends android.preference.Preference 
##-keep public class com.android.vending.licensing.ILicensingService 
#-keep public class com.fasterxml.jackson.databind.ObjectMapper 

-keepclasseswithmembernames class * { 
    native <methods>; 
} 

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

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

#-keepclasseswithmembernames class * { 
# public onStart(); 
#} 

-keep public class com.fasterxml.jackson.** { 
    public void set*(***); 
    public *** get*(); 
} 

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

-keep class * implements android.os.Parcelable { 
    public static final android.os.Parcelable$Creator *; 
    public void set*(***); 
    public *** get*(); 
} 

-keep class * { 
    public void *(android.view.View); 
} 

あなたは私が知っていると私は提供させていただきますしてください必要な任意のより多くの情報がある場合、これは現在ベータ版を公開する当社の能力をブロックしている:

は、ここに私たちのProGuardのファイルです。 ProGuardのから

-keep class * { 
    public void *(android.view.View); 
} 

、さまざまなライブラリでこれを使用するときに、いくつかの競合がなければならないよう:

答えて

3

だから私たちのために、解決策を削除するようです。私たちがこの問題に6日間ぶつかっているので、これが他の人たちにこの問題に繋がるのを助けることを願っています。

あなたがして明示的にハンドラをクリックして、あなたの参照を追加する必要がありますか、少なくともそれを絞る、ここではこのルールの起源を見ることに留意すべきである:Android Proguard - how to keep onClick handlers only referenced from XML layouts

0

私もCreativeSDKを追加した後に、このエラーで苦労されています。 将来的に誰かを助ける場合は、ここに追加してください。 正確なエラーは次のとおりです。

未知の変換エラー:com.android.dx.cf.code.SimException:com.android.dx.rop.cst.CstMethodRefはcom.android.dx.rop.cstにキャストできません.CstInterfaceMethodRef

と私の場合には解決策は、ProGuardの

から

-keep class retrofit.** { *; } 

を削除することでした

関連する問題