如果第一方库已提供权限,我正在使用使用地理位置的第三方库。我想测试一下这个行为,但无法发送我的应用程序w /清单中设置的权限(b / c然后它不是可选的)。
无论如何,只有在我正在运行测试时设置<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
?
我正在使用gradle构建工具com.android.tools.build:gradle:0.12.2
并遵循androidTest目录约定。我的项目看起来像这样:
tree src -L 3
src
├── androidTest
│ ├── java
│ │ └── com
│ └── resources
└── main
├── AndroidManifest.xml
└── java
└── com
我尝试在androidTest文件夹中添加第二个清单(我将软件包更新为:package =“com.myapp.test”),但地理位置权限不会生效。
我考虑过切换到robolectric,但宁愿只是短期使用仪器测试。请告知这是否会使这更容易。
答案 0 :(得分:4)
我找到了一个不错的解决方案(不是最干净的IMO):
将此添加到您的<appname>/build.gradle
:
android {
...
sourceSets {
debug {
manifest.srcFile 'src/androidTest/AndroidManifest.xml'
}
}
...
}
然后,当然,使用您所需的权限在src/androidTest/
中创建 AndroidManifest.xml 文件。
我从Android issue tracker获取此信息。