naming problems
Java class file shrinker, optimizer, obfuscator, and preverifier
Brought to you by:
guardsquare
It seems that in some cases Proguard is changing the
name of the class to capital letter - instead of 'a' to
'A', but the file name remains with small 'a' -
a.class, and some of the references in other classes
also remain with small 'a'.
I think Proguard changes the name to capital letter
when the class is using another class from another
package which also is named 'a' and is referred to by
its short name ( using an 'import' directive beforehands).
Logged In: NO
I tried putting everything in one package, but it did not resolve
the problem. It is still using capital letters inconsistently.
I am working in J2ME, the preverifier is giving an error 'wrong
name' for class com.something.something.a when the class
is actually 'A'.
Logged In: YES
user_id=555208
That sounds unusual. For ProGuard, 'A' is as different from
'a' as it is different from 'B'. There is no attempt to be
case-insensitive anywhere in the Java code. Note that the
import statement in Java source code is just for
convenience, class files always use fully specified class names.
I've had a lot of questions about case-sensitivity problems
lately, and so far, they all boiled down to the
case-insensitivity of the Windows filesystem. One problem in
Windows is that it's possible to write a class 'A' in a file
'a.java', and have it working, seemingly without problems.
Another frequent problem in Windows is simply unpacking the
obfuscated jar. A file like 'A.class' will then overwrite
'a.class'. Obviously, this will destroy your application.
Can you check if anything like this is happening?
Can anyone one else confirm similar problems?
Note that you can generate uppercase class names only, using
the -dontusemixedcaseclassnames option, if you really want to.
Eric.
Logged In: YES
user_id=684229
The problem is connected with the Windows file system.
If I configure Proguard to use only lowercase letters the
problem disappears.
Thanks for answering and pointing the problem.