Hi there, I'm having issues ofuscate a package since I add an external lib.
I already tried to make this:
-keep public class * extends android.content.pm.IPackageStatsObserver
-keep public class * implements android.content.pm.IPackageStatsObserver
-keepclassmembers class * {
public static android.content.pm.IPackageStatsObserver asInterface(android.os.IBinder);
}
and
-keep public class com.(namespace).corelib.\*\* {*;}
-libraryjars libs/corelib.jar
-dontwarn com.(namespace).corelib.\*\*
where (namespace) it's corelib domain.
But this compilation problem remains:
[proguard] Reading program jar [/mnt/data/jenkins/workspace/xxx/libs/corelib.jar]
BUILD FAILED
/home/jenkins/android-sdk-base/tools/ant/build.xml:875: Can't read [/mnt/data/jenkins/workspace/xxx/libs/corelib.jar] (Can't process class [android/content/pm/IPackageStatsObserver$Stub.class] (64000))
Thanks for any possible help
Last edit: pttraffic 2015-02-04
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Error:ProGuard: [xxx] java.io.IOException: Can't read [/Users/xxxx/Documents/xxxx/clientes/xxx/libs/corelib.jar] (Can't process class [android/content/pm/IPackageStatsObserver$Stub.class] (64000))
Error:ProGuard: [xxx] at proguard.InputReader.readInput(InputReader.java:230)
Error:ProGuard: [xxx] at proguard.InputReader.readInput(InputReader.java:200)
Error:ProGuard: [xxx] at proguard.InputReader.readInput(InputReader.java:178)
Error:ProGuard: [xxx] at proguard.InputReader.execute(InputReader.java:78)
Error:ProGuard: [xxx] at proguard.ProGuard.readInput(ProGuard.java:196)
Error:ProGuard: [xxx] at proguard.ProGuard.execute(ProGuard.java:78)
Error:ProGuard: [xxx] at proguard.ProGuard.main(ProGuard.java:492)
Error:ProGuard: [xxx] Caused by: java.io.IOException: Can't process class [android/content/pm/IPackageStatsObserver$Stub.class] (64000)
Error:ProGuard: [xxx] at proguard.io.ClassReader.read(ClassReader.java:112)
Error:ProGuard: [xxx] at proguard.io.FilteredDataEntryReader.read(FilteredDataEntryReader.java:87)
Error:ProGuard: [xxx] at proguard.io.JarReader.read(JarReader.java:65)
Error:ProGuard: [xxx] at proguard.io.DirectoryPump.readFiles(DirectoryPump.java:65)
Error:ProGuard: [xxx] at proguard.io.DirectoryPump.pumpDataEntries(DirectoryPump.java:53)
Error:ProGuard: [xxx] at proguard.InputReader.readInput(InputReader.java:226)
Error:ProGuard: [xxx] ... 6 more
Error:ProGuard: [xxx] Caused by: java.lang.ArrayIndexOutOfBoundsException: 64000
Error:ProGuard: [xxx] at proguard.classfile.ProgramClass.getString(ProgramClass.java:116)
Error:ProGuard: [xxx] at proguard.classfile.io.ProgramClassReader.createAttribute(ProgramClassReader.java:828)
Error:ProGuard: [xxx] at proguard.classfile.io.ProgramClassReader.visitProgramMethod(ProgramClassReader.java:199)
Error:ProGuard: [xxx] at proguard.classfile.io.ProgramClassReader.visitProgramClass(ProgramClassReader.java:142)
Error:ProGuard: [xxx] at proguard.classfile.ProgramClass.accept(ProgramClass.java:346)
Error:ProGuard: [xxx] at proguard.io.ClassReader.read(ClassReader.java:91)
Error:ProGuard: [xxx] ... 11 more
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
If you are building an Android application with one of the standard Android build systems, you must not specify any -injars, -outjars, or -libraryjars options. The build system already specifies these for you.
Moreover, some class file in your corelib.jar appears to be corrupt. You can check if rebuilding it helps or if some tool is corrupting it.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi there, I'm having issues ofuscate a package since I add an external lib.
I already tried to make this:
where (namespace) it's corelib domain.
But this compilation problem remains:
[proguard] Reading program jar [/mnt/data/jenkins/workspace/xxx/libs/corelib.jar]
BUILD FAILED
/home/jenkins/android-sdk-base/tools/ant/build.xml:875: Can't read [/mnt/data/jenkins/workspace/xxx/libs/corelib.jar] (Can't process class [android/content/pm/IPackageStatsObserver$Stub.class] (64000))
Thanks for any possible help
Last edit: pttraffic 2015-02-04
-libraryjars /libs/corelib.jar
This line is completely ignored.
Error:ProGuard: [xxx] java.io.IOException: Can't read [/Users/xxxx/Documents/xxxx/clientes/xxx/libs/corelib.jar] (Can't process class [android/content/pm/IPackageStatsObserver$Stub.class] (64000))
Error:ProGuard: [xxx] at proguard.InputReader.readInput(InputReader.java:230)
Error:ProGuard: [xxx] at proguard.InputReader.readInput(InputReader.java:200)
Error:ProGuard: [xxx] at proguard.InputReader.readInput(InputReader.java:178)
Error:ProGuard: [xxx] at proguard.InputReader.execute(InputReader.java:78)
Error:ProGuard: [xxx] at proguard.ProGuard.readInput(ProGuard.java:196)
Error:ProGuard: [xxx] at proguard.ProGuard.execute(ProGuard.java:78)
Error:ProGuard: [xxx] at proguard.ProGuard.main(ProGuard.java:492)
Error:ProGuard: [xxx] Caused by: java.io.IOException: Can't process class [android/content/pm/IPackageStatsObserver$Stub.class] (64000)
Error:ProGuard: [xxx] at proguard.io.ClassReader.read(ClassReader.java:112)
Error:ProGuard: [xxx] at proguard.io.FilteredDataEntryReader.read(FilteredDataEntryReader.java:87)
Error:ProGuard: [xxx] at proguard.io.JarReader.read(JarReader.java:65)
Error:ProGuard: [xxx] at proguard.io.DirectoryPump.readFiles(DirectoryPump.java:65)
Error:ProGuard: [xxx] at proguard.io.DirectoryPump.pumpDataEntries(DirectoryPump.java:53)
Error:ProGuard: [xxx] at proguard.InputReader.readInput(InputReader.java:226)
Error:ProGuard: [xxx] ... 6 more
Error:ProGuard: [xxx] Caused by: java.lang.ArrayIndexOutOfBoundsException: 64000
Error:ProGuard: [xxx] at proguard.classfile.ProgramClass.getString(ProgramClass.java:116)
Error:ProGuard: [xxx] at proguard.classfile.io.ProgramClassReader.createAttribute(ProgramClassReader.java:828)
Error:ProGuard: [xxx] at proguard.classfile.io.ProgramClassReader.visitProgramMethod(ProgramClassReader.java:199)
Error:ProGuard: [xxx] at proguard.classfile.io.ProgramClassReader.visitProgramClass(ProgramClassReader.java:142)
Error:ProGuard: [xxx] at proguard.classfile.ProgramClass.accept(ProgramClass.java:346)
Error:ProGuard: [xxx] at proguard.io.ClassReader.read(ClassReader.java:91)
Error:ProGuard: [xxx] ... 11 more
I just want to ignore this external lib, there is anyway that would do that?
using keep, same crash, using libraryjars same crash, what else can I do?
javap -c -private -verbose -classpath corelib.jar android.content.pm.IPackageStatsObserver
Classfile jar:file:/Users/teixeiras/Downloads/corelib.jar!/android/content/pm/IPackageStatsObserver.class
Last modified Jul 21, 2014; size 337 bytes
MD5 checksum 9e129818f7aebdc5e81510db14424713
Compiled from "SourceFile"
public interface android.content.pm.IPackageStatsObserver extends android.os.IInterface
InnerClasses:
public static abstract #10= #2 of #1; //Stub=class android/content/pm/IPackageStatsObserver$Stub of class android/content/pm/IPackageStatsObserver
SourceFile: "SourceFile"
minor version: 0
major version: 51
flags: ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT
Constant pool:
#1 = Class #12 // android/content/pm/IPackageStatsObserver
#2 = Class #13 // android/content/pm/IPackageStatsObserver$Stub
#3 = Class #14 // android/os/IInterface
#4 = Class #15 // android/os/RemoteException
#5 = Class #16 // java/lang/Object
#6 = Utf8 (Landroid/content/pm/PackageStats;)V
#7 = Utf8 Exceptions
#8 = Utf8 InnerClasses
#9 = Utf8 SourceFile
#10 = Utf8 Stub
#11 = Utf8 a
#12 = Utf8 android/content/pm/IPackageStatsObserver
#13 = Utf8 android/content/pm/IPackageStatsObserver$Stub
#14 = Utf8 android/os/IInterface
#15 = Utf8 android/os/RemoteException
#16 = Utf8 java/lang/Object
{
public abstract void a(android.content.pm.PackageStats) throws android.os.RemoteException;
flags: ACC_PUBLIC, ACC_ABSTRACT
Exceptions:
throws android.os.RemoteException
}
If you are building an Android application with one of the standard Android build systems, you must not specify any -injars, -outjars, or -libraryjars options. The build system already specifies these for you.
Moreover, some class file in your corelib.jar appears to be corrupt. You can check if rebuilding it helps or if some tool is corrupting it.