android-mapviewballoons,如果我用ProGuard构建,onBalloonTap不起作用

时间:2012-02-08 23:47:44

标签: android proguard

我正在使用android-mapviewballoons(https://github.com/jgilfelt/android-mapviewballoons)开发一个项目。我使用一个名为CustomItemizedOverlay的自定义类扩展了com.readystatesoftware.mapviewballolo.BalloonItemizedOverlay,在这个类中我重新定义了onBalloonTap(int index)。

当我在不使用proguard的情况下构建已签名的APK时,一切正常:应用程序运行,我可以点击地图,查看气球,点击气球,然后通过onBalloonTap,获取有关我一直以来的更多信息点击。 当我使用proguard激活时,应用程序运行完美除了气球:我可以点击地图,看到气球,但当我点击它时没有任何反应。就像气球本身是透明的一样,如果它背后有东西它会被选中,就像气球不存在一样。

我尝试逐个删除proguard.cfg中的功能,但无法找到正在发生的事情。我尝试使用-dontoptimize,但没有用。我认为问题可能来自混淆过程,但我无法避免混淆,因为如果我把-dontobfuscate指令构建失败并带有“Dalvik Error 1”消息。

在我的proguard文件的“library”部分,我有: (...)

-libraryjars /home/marco/workspace/../Scrivania/android-sdk-linux/add-ons/addon-google_apis-google_inc_-7/libs/maps.jar

-libraryjars /home/marco/workspace/android-mapviewballoons/bin/android-mapviewballoons.jar

在“保持”部分,我(其中包括):

-keep public class * extends com.google.android.maps.MapActivity

-keep class com.posteitaliane.postemobile.CoverFlow

-keepclassmembers public class com.readystatesoftware.mapviewballoons.BalloonItemizedOverlay.** {
                public static * ;
        }

-keepclassmembers public class com.posteitaliane.postemobile.CustomItemizedOverlay.** {
                public static * ;
        }

-keepclassmembers public class com.readystatesoftware.mapviewballoons.** {
                public static * ;
        }
有人可以帮帮我吗?我只是不知道如何创建一个签名版本而不破坏proguard或丢失这个mapBalloon功能。

提前谢谢

编辑2012/03/19 我通过在项目中导入更高版本的mapviewballoons并修复代码以适应mapviewballoons本身的新功能来解决了这个问题。见https://github.com/jgilfelt/android-mapviewballoons/issues/16

0 个答案:

没有答案