测试运行失败:权限拒绝:从pid = 766开始检测ComponentInfo {com.xxx.taskmanager.warehouse.tests / android.test.InstrumentationTestRunner},因为包com.xxx.taskmanager.warehouse,所以不允许使用uid = 766。 tests没有与目标com.xxx.taskmanager.warehouse匹配的签名
空的测试套件。
这是我的app.gradle文件
apply plugin: 'android-sdk-manager'
apply plugin: 'com.android.application'
android {
signingConfigs {
release
{
keyAlias 'xxx'
keyPassword 'xxx'
storeFile file('../keystore.jks')
storePassword 'xxx'
}
}
compileSdkVersion 16
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "com.xxx.taskmanager.warehouse"
minSdkVersion 16
targetSdkVersion 16
versionCode 3
versionName "3.0"
testApplicationId "com.xxx.taskmanager.warehouse.tests"
}
packagingOptions {
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/LICENSE'
exclude 'LICENSE'
exclude 'NOTICE'
exclude 'META-INF/NOTICE'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/ASL2.0'
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
}
applicationVariants.all { variant ->
variant.outputs.each { output ->
output.outputFile = new File(
output.outputFile.parent,
"FLO_HANDHELD_V${variant.versionName}.apk"
)
}
}
variantFilter { variant ->
if(variant.buildType.name.equals('debug')) {
variant.setIgnore(true);
}
}
productFlavors {
production_b2b {
applicationId "com.xxx.taskmanager.warehouse"
minSdkVersion 16
targetSdkVersion 16
versionCode 3
versionName "3.1-Prod-B2B"
}
stage_b2b {
applicationId "com.xxx.taskmanager.warehouse"
minSdkVersion 16
targetSdkVersion 16
versionCode 3
versionName "3.1-Stage-B2B"
}
production_b2c {
applicationId "com.xxx.taskmanager.warehouse"
minSdkVersion 16
targetSdkVersion 16
versionCode 3
versionName "3.1-Prod-B2C"
}
stage_b2c {
applicationId "com.xxx.taskmanager.warehouse"
minSdkVersion 16
targetSdkVersion 16
versionCode 3
versionName "3.1-Stage-B2C"
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile files ('libs/android-support-v7-appcompat.jar')
compile files('libs/android-support-v4.jar')
compile project(':taskmanagerlib')
compile files('libs/DataCollection.jar')
androidTestCompile fileTree(dir: 'libs', include: 'robotium-solo-5.3.0.jar')
}
task copyTask(type: Copy) {
from 'build/outputs/apk'
into 'apks'
exclude '**/*-unaligned.apk'
}
task deleteApk(type: org.gradle.api.tasks.Delete){
// delete 'apks'
}
task appBuild(dependsOn: ['deleteApk','clean', 'assembleRelease', 'copyTask']){
assembleRelease.mustRunAfter deleteApk
clean.mustRunAfter deleteApk
copyTask.mustRunAfter assembleRelease
}
我认为这个错误正在发生,因为我还没有为测试包声明signedConfigs。如果是这样,我该如何申报。 ? 请帮忙。 !
答案 0 :(得分:10)
我已经解决了这个问题。回答它以便它对其他人有用。
解决方案适用于Android Studio:
要运行测试,构建变量应该是debug。 Build Variants窗口出现在android studio的左侧,如果没有激活,则点击android studio左侧的Build variants选项卡激活它。
答案 1 :(得分:1)
您必须将构建版本更改为debug
,或在testBuildType
文件中的android
标记中添加build.gradle
。像这样:
android {
...
testBuildType "release"
}
答案 2 :(得分:0)
清理您的项目。
如果已安装,请卸载应用。
现在运行你的项目。
它完全为我工作。
答案 3 :(得分:0)
即使几年后使用Android Studio 3.x,也出现了相同的问题。以前的答案对我不起作用。
唯一的解决方法是将权限明确添加到手机上的测试应用。
答案 4 :(得分:0)
将Startapp代码更改为使用apk文件而不是已安装的App时,它对我有用。 即来自:
来自: 返回GetApp()。InstalledApp(Settings.AUTPackageName).EnableLocalScreenshots()。ConnectToApp();
收件人: 返回GetApp()。ApkFile(Settings.AUTPath).EnableLocalScreenshots()。ConnectToApp();