2016-06-21 7 views
0

ich ClassCastException bin immer während Android-Hybrid-App als apk in Mobile First Server Export 7,1Proguard Classcast in Mobile First Server 7.1

unten Links Gefolgt für Proguard in MFS zu ermöglichen.

https://www.youtube.com/watch?v=WrCmLJuIMuk

https://www.ibm.com/support/knowledgecenter/SSHS8R_7.1.0/com.ibm.worklight.deploy.doc/admin/t_pg_creating_obfus_apk.html

Unten finden Sie Konsole Fehlerprotokolle

[2016-06-21 11:57:47 - ProguardProguardAndroid] Proguard returned with error code 1. See console 
[2016-06-21 11:57:47 - ProguardProguardAndroid] Note: there were 2640 duplicate class definitions. 
[2016-06-21 11:57:47 - ProguardProguardAndroid]  You should check if you need to specify additional program jars. 
[2016-06-21 11:57:47 - ProguardProguardAndroid] java.lang.ClassCastException: java.lang.Object cannot be cast to java.lang.String 
[2016-06-21 11:57:47 - ProguardProguardAndroid]  at proguard.obfuscate.MemberObfuscator.newMemberName(MemberObfuscator.java:198) 
[2016-06-21 11:57:47 - ProguardProguardAndroid]  at proguard.obfuscate.MemberNameCollector.visitAnyMember(MemberNameCollector.java:74) 
[2016-06-21 11:57:47 - ProguardProguardAndroid]  at proguard.classfile.util.SimplifiedVisitor.visitProgramMember(SimplifiedVisitor.java:79) 
[2016-06-21 11:57:47 - ProguardProguardAndroid]  at proguard.classfile.util.SimplifiedVisitor.visitProgramMethod(SimplifiedVisitor.java:91) 
[2016-06-21 11:57:47 - ProguardProguardAndroid]  at proguard.classfile.visitor.MemberAccessFilter.visitProgramMethod(MemberAccessFilter.java:90) 
[2016-06-21 11:57:47 - ProguardProguardAndroid]  at proguard.classfile.ProgramMethod.accept(ProgramMethod.java:71) 
[2016-06-21 11:57:47 - ProguardProguardAndroid]  at proguard.classfile.ProgramClass.methodsAccept(ProgramClass.java:504) 
[2016-06-21 11:57:47 - ProguardProguardAndroid]  at proguard.classfile.visitor.AllMemberVisitor.visitProgramClass(AllMemberVisitor.java:48) 
[2016-06-21 11:57:47 - ProguardProguardAndroid]  at proguard.classfile.ProgramClass.accept(ProgramClass.java:346) 
[2016-06-21 11:57:47 - ProguardProguardAndroid]  at proguard.classfile.ProgramClass.hierarchyAccept(ProgramClass.java:359) 
[2016-06-21 11:57:47 - ProguardProguardAndroid]  at proguard.classfile.LibraryClass.hierarchyAccept(LibraryClass.java:371) 
[2016-06-21 11:57:47 - ProguardProguardAndroid]  at proguard.classfile.ProgramClass.hierarchyAccept(ProgramClass.java:416) 
[2016-06-21 11:57:47 - ProguardProguardAndroid]  at proguard.classfile.visitor.ClassHierarchyTraveler.visitProgramClass(ClassHierarchyTraveler.java:75) 
[2016-06-21 11:57:47 - ProguardProguardAndroid]  at proguard.classfile.visitor.MultiClassVisitor.visitProgramClass(MultiClassVisitor.java:85) 
[2016-06-21 11:57:47 - ProguardProguardAndroid]  at proguard.classfile.ProgramClass.accept(ProgramClass.java:346) 
[2016-06-21 11:57:47 - ProguardProguardAndroid]  at proguard.classfile.ClassPool.classesAccept(ClassPool.java:116) 
[2016-06-21 11:57:47 - ProguardProguardAndroid]  at proguard.obfuscate.Obfuscator.execute(Obfuscator.java:217) 
[2016-06-21 11:57:47 - ProguardProguardAndroid]  at proguard.ProGuard.obfuscate(ProGuard.java:333) 
[2016-06-21 11:57:47 - ProguardProguardAndroid]  at proguard.ProGuard.execute(ProGuard.java:135) 
[2016-06-21 11:57:47 - ProguardProguardAndroid]  at proguard.ProGuard.main(ProGuard.java:492) 

unten finden für die Inhalte für proguard-project.txt

# To enable ProGuard in your project, edit project.properties 
# to define the proguard.config property as described in that file. 
# 
# Add project specific ProGuard rules here. 
# By default, the flags in this file are appended to flags specified 
# in ${sdk.dir}/tools/proguard/proguard-android.txt 
# You can edit the include path and order by changing the ProGuard 
# include property in project.properties. 
# 
# 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 *; 
#} 

-injars  bin/classes 
-injars  libs 
-outjars  bin/classes-processed.jar 

# Using Google's License Verification Library 
-keep class com.android.vending.licensing.ILicensingService 

# Specifies to write out some more information during processing. 
# If the program terminates with an exception, this option will print out the entire stack trace, instead of just the exception message. 
-verbose 

#################################################################################################### 
############################## IBM MobileFirst Platform configuration ############################ 
#################################################################################################### 
# Annotations are represented by attributes that have no direct effect on the execution of the code. 
-keepattributes *Annotation* 

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

-keepattributes InnerClasses 
-keep class **.R 
-keep class **.R$* { 
    <fields>; 
} 

# These options let obfuscated applications or libraries produce stack traces that can still be deciphered later on 
-renamesourcefileattribute SourceFile  
-keepattributes SourceFile,LineNumberTable 

# Enable proguard with Cordova 
-keep class org.apache.cordova.** { *; } 
-keep public class * extends org.apache.cordova.CordovaPlugin 

-keep class com.worklight.androidgap.push.** { *; } 
-keep class com.worklight.wlclient.push.** { *; } 
-keep class com.worklight.common.security.AppAuthenticityToken { *; } 

# Enable proguard with Google libs 
-keep class com.google.** { *;} 
-dontwarn com.google.common.** 
-dontwarn com.google.ads.** 

# apache.http 
-keep class org.apache.http.** { *; } 
-dontwarn org.apache.http.** 
-optimizations !class/merging/vertical*,!class/merging/horizontal*,!code/simplification/arithmetic,!field/*,!code/allocation/variable 

-keep class net.sqlcipher.** { *; } 
-dontwarn net.sqlcipher.** 

-keep class org.codehaus.** { *; } 
-keepattributes *Annotation*,EnclosingMethod 

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

# These classes contain references to external jars which are not included in the default MobileFirst project. 
-dontwarn com.worklight.common.internal.WLTrusteerInternal* 
-dontwarn com.worklight.jsonstore.** 
-dontwarn org.codehaus.jackson.map.ext.* 
-dontwarn com.worklight.androidgap.push.GCMIntentService 
-dontwarn com.worklight.androidgap.plugin.WLInitializationPlugin 
-dontwarn com.worklight.wlclient.push.GCMIntentService 
-dontwarn org.bouncycastle.** 
-dontwarn com.worklight.androidgap.jsonstore.security.SecurityManager 

-dontwarn com.worklight.wlclient.push.WLBroadcastReceiver 
-dontwarn com.worklight.wlclient.push.common.* 
-dontwarn com.worklight.wlclient.api.WLPush 
-dontwarn com.worklight.wlclient.api.SecurityUtils 

-dontwarn android.support.v4.** 
-dontwarn android.net.SSLCertificateSocketFactory 
-dontwarn android.net.http.* 
###################################################################################################### 

-dontwarn android.** 
-keep class android.** 

-dontwarn com.android.** 
-keep class com.android.** 

-dontwarn com.google.** 
-keep class com.google.** 
+0

Erwähnen Sie Ihre 7.1 vollständige Build-Nummer. –

+0

7.1.0.00-20160318-1808 – Rajendra

+0

Verbesserte Formatierung – Micho

Antwort

2

I proguard vonaktualisiert heruntergeladen. Ich habe bin und lib Ordner meines Proguards durch heruntergeladene ersetzt. Proguard-Ordner befindet sich in/android-sdks/tools/proguard

Dies löste mein Problem.

Verwandte Themen