Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Offline map freezes the app after proguard on android

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

UPDATE

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.** { *; }
like image 591
Szoszi Avatar asked Dec 19 '25 01:12

Szoszi


2 Answers

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.

like image 170
AWT Avatar answered Dec 20 '25 16:12

AWT


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.

like image 43
Szoszi Avatar answered Dec 20 '25 15:12

Szoszi



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!