【问题标题】:MobileFirst Proguard returned with error code 1. See console java.lang.ClassCastExceptionMobileFirst Proguard 返回错误代码 1。请参阅控制台 java.lang.ClassCastException
【发布时间】:2016-07-29 18:21:46
【问题描述】:

我在尝试创建示例应用程序的签名 apk 时收到此异常。

请指导我解决这个问题。

我在 MobileFirst 7.1 中更新了最新的 7.1.0.0-MFPF-StudioP2-IF201607111057。

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

项目.属性

# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
# 
# This file must be checked in Version Control Systems.
# 
# To customize properties used by the Ant build system use,
# "build.properties", and override values to adapt the script to your
# project structure.

# Indicates whether an apk should be generated for each density. split.density=false
# Project target. target=android-21

# Uncomment the line below to enable Android Proguard proguard.config=proguard-project.txt

【问题讨论】:

    标签: android ibm-mobilefirst


    【解决方案1】:

    Helo Krish,

    首先,注意这个警告。保持代码整洁有序并有重复是非常重要的

    Proguard returned with error code 1. See console    
    [2016-07-29 13:16:13 - samAPPSampleAndroid] Note: there were 2641 duplicate class definitions.
    [2016-07-29 13:16:13 - samAPPSampleAndroid]       You should check if you need to specify additional program jars.
    

    关于这个错误,在你的项目中有一行你将一个对象转换/处理为一个字符串,而 Proguard 根本无法处理它

    [2016-07-29 13:16:13 - samAPPSampleAndroid] java.lang.ClassCastException: java.lang.Object cannot be cast to java.lang.String
    

    检查您的代码是否存在任何可能的错误转换并进行处理。
    另外,check this other post related to a Proguard ClassCastException

    【讨论】:

    • 我使用了 IBM MobileFirst V7.1 并创建了给出此错误的示例应用程序。我没有新添加任何 jar 或 java 文件。
    猜你喜欢
    • 1970-01-01
    • 2012-10-23
    • 2015-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多