2014-12-05 28 views
2

我通过下面的代码动画地图标记:NoSuchPropertyException在签名版本

final Property<Marker, LatLng> property = 
     Property.of(Marker.class, LatLng.class, "position"); 
final ObjectAnimator animator = 
     ObjectAnimator.ofObject(otherMarker, property, typeEvaluator, toLatLng); 

这工作正常,在调试版本,但失败与以下堆栈跟踪的签名版本:

0 
android.util.NoSuchPropertyException: No accessor method or field found for property with name position 
1 
at android.util.ReflectiveProperty.<init>(ReflectiveProperty.java:71) 
2 
at android.util.Property.of(Property.java:55) 
3 
at com.myapp.fragment.MapWrapperFragment.j(MapWrapperFragment.java:1090) 
4 
at com.myapp.ActivityA.l(ActivityA.java:860) 
5 
at com.myapp.fragment.FragmentA$22.onClick(FragmentA.java:377) 
6 
at android.view.View.performClick(View.java:4438) 
7 
at android.view.View$PerformClick.run(View.java:18422) 
8 
at android.os.Handler.handleCallback(Handler.java:733) 
9 
at android.os.Handler.dispatchMessage(Handler.java:95) 
10 
at android.os.Looper.loop(Looper.java:136) 
11 
at android.app.ActivityThread.main(ActivityThread.java:5001) 
12 
at java.lang.reflect.Method.invokeNative(Native Method) 
13 
at java.lang.reflect.Method.invoke(Method.java:515) 
14 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) 
15 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) 
16 
at dalvik.system.NativeStart.main(Native Method) 

这可能是什么原因?我不确定它是否相关,但我正在使用Proguard。

+0

我在使用proguard时在标记动画中遇到同样的问题。你可以让我知道你使用了什么规则 - 由matiash建议的-keep或-keepnames。 – ajay 2015-01-21 23:34:07

+0

谢谢。我在http://developer.android.com/google/play-services/setup.html#Proguard – ajay 2015-01-23 02:29:29

+0

上使用了这些信息您使用的是Google Maps 7.0.0吗?我用你的proguard设置,但我仍然得到错误,也许他们内部改变了一些东西。 – 2015-04-13 08:41:50

回答

2

Proguard正在删除或重命名该字段,因为它不知道通过反射完成的任何访问。这就是它在运行时失败的原因。

您应该添加一个-keep(或-keepnames)规则来防止这种情况发生。

4

我偶然发现了同样的问题,但提供的proguard更改没有为我做。我猜是因为我用的是新的播放服务(“com.google.android.gms:发挥服务,地图:7.0.0”),他们可能有不同的内部结构

什么工作对我来说是:

-keep class com.google.android.gms.** { *; } 
+0

好人。它也适用于我。 – 2016-12-23 10:15:13

相关问题