Reputation: 41
I have an Android app using nutiteq OSM map, with mapsforge renderer, and a map file stored in the assets folder. It works perfectly without proguard, but after obfuscation, the app freezes, without any log info.
In the proguard.cfg:
-keep class com.nutiteq.** { ; } -keep class org.mapsforge.* { *; }
But even if I keep all code from my package, it doesn't help.
Any idea?
Thanks
Szoszi
Without irrelevant info.
proguard.cfg:
-printmapping proguard.map
-keepattributes SourceFile,LineNumberTable,*Annotation*,Signature
#-optimizationpasses 5
-dontpreverify
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontskipnonpubliclibraryclassmembers
-libraryjars /libs/mapsforge-map-0.3.1-with-dependencies.jar
-libraryjars /libs/nineoldandroids-2.4.0.jar
-libraryjars /libs/nutiteq-3d-sdk-2.3.0.jar
-verbose
#Libraries
-keep class com.google.protobuf.** { *; }
-keep class com.nutiteq.** { *; }
-keep class org.mapsforge.** { *; }
-keep class mypackage.util.MapsforgeRasterDataSource.** { *; }
Upvotes: 3
Views: 410
Reputation: 41
Finally, the solution had found. Proguard removes all logs from code, but nutiteq uses its own log methods...also removed. Everything works fine, if you keep logs.
Thx for replies.
Upvotes: 1
Reputation: 3717
Are you using source code for nutiteq and mapsforge, or jar files? If you're using jar files, you can define them as a libraryjar in proguard instead of an injar. An example:
proguard.cfg
-injars build\myproject.jar
-injars build\myOtherProject.jar
-outjars proguard\obfuscated
-libraryjars nutiteq.jar
-libraryjars mapsforge.jar
...
...
...
This way proguard can keep track of the references your code makes to your third party libraries, but does not bother trying to obfuscate them unnecessarily.
Upvotes: 1