我有一个Android项目,包含Google Play服务和Robolectric测试,在同一个模块中,其他包。 我的清单中有这个:
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/gms_version" />
这是在integer.xml
中<?xml version="1.0" encoding="utf-8"?>
<resources>
<integer name="gms_version">@integer/google_play_services_version</integer>
</resources>
但是当我运行测试时,我得到了这个错误:
java.lang.IllegalStateException: The meta-data tag in your app's AndroidManifest.xml does not have the right value. Expected 4323000 but found 0. You must have the following declaration within the <application> element: <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
我试图将此标记直接放在清单中,但我得到一个nullpointerexception获取此值。 我该如何解决这个问题?
答案 0 :(得分:0)
您使用的是什么版本的Robolectric?这是一个错误,robo假设所有元数据都是字符串,但应该已经修复(我使用2.3,这很好) https://github.com/robolectric/robolectric/issues/950
另一种解决方法是直接将整数值放在清单中而不是引用它,但猜测那不是你正在寻找的......