jQw*_*rdy 5 android android-gradle-plugin
我想知道是否有办法向 Android清单文件添加某些权限(或任何内容),但是它只在测试运行期间使用 - 而不是生产.我正在寻找一些程序化的东西,而不是在我测试时切割和粘贴.
我正在阅读这篇文章:http://developer.android.com/training/location/location-testing.html,测试运行应用程序的最佳做法曾经是创建'测试应用程序',但是对于android studio我们现在不打算创建一个新的应用程序 - 所有测试都应该通过应用程序完成.(谢谢你的学习)
问题是这篇文章是用一个测试权限(ACCESS_MOCK_LOCATION)编写的,我不希望它坐在我的应用程序中 - 如果有一个很好的方法,我想这样做.
更新:我遇到这个问题的原因是因为自从迁移到Gradle后对android studio架构的设置存在误解.我没有意识到构建类型共享'androidTest'和'main'源文件夹.因此,在测试或运行未完成的应用程序时,它会获取调试文件(如果有的话)并将所有生产内容添加到其中.所以在我的情况下,我在调试中添加了一个空的清单文件,只是添加了两个权限.当我运行或测试时,gradle将我的所有应用程序的东西从其他清单添加到它这个骨架文件(反之亦然,我不确定).
所以最后我们不需要修改androidTest文件夹(事实上我认为我们不允许在这里添加清单),因为它是根据用户是在调试还是部署上运行而完全生成的.干杯! :-)
rci*_*ati 17
假设您使用默认debug和release构建类型,并针对调试构建类型运行测试.在这种情况下,您可以src/debug/AndroidManifest.xml在调试版本中创建并添加所需的其他权限:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="your.package">
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"/>
</manifest>
Run Code Online (Sandbox Code Playgroud)
如果您的项目不遵循默认文件夹层次结构,并且您想要为调试版本添加权限,请添加以下块.
sourceSets {
debug {
manifest.srcFile '<your folder>/AndroidManifest.xml'
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6380 次 |
| 最近记录: |