Dan*_*n J 5 android build.gradle android-gradle-plugin
我正在尝试按照此要点禁用系统动画:
task grantAnimationPermission(type: Exec, dependsOn: 'installDevDebug') {
commandLine "adb shell pm grant $android.defaultConfig.applicationId android.permission.SET_ANIMATION_SCALE".split(' ')
}
tasks.whenTaskAdded { task ->
if (task.name.startsWith('installDevDebugAndroidTest')) {
task.dependsOn grantAnimationPermission
}
}
Run Code Online (Sandbox Code Playgroud)
每当运行调试版本时,此代码都会尝试用来adb
授予SET_ANIMATION_SCALE
权限(上述代码的替代方案也可以).
不幸的是,当我运行它时,applicationId
总是出现为null:
$ ./gradlew installDevDebugAndroidTest
<snip>
:CookBrite:grantAnimationPermission
Bad argument: java.lang.IllegalArgumentException: Unknown package: null
Run Code Online (Sandbox Code Playgroud)
如果我打印$android.defaultConfig
,似乎确认applicationId为null:
ProductFlavor_Decorated{name=main, minSdkVersion=ApiVersionImpl{mApiLevel=14, mCodename='null'}, targetSdkVersion=ApiVersionImpl{mApiLevel=21, mCodename='null'}, renderscriptTargetApi=null, renderscriptSupportModeEnabled=null, renderscriptNdkModeEnabled=null, versionCode=119, versionName=1.1.4, applicationId=null, testApplicationId=null, testInstrumentationRunner=android.support.test.runner.AndroidJUnitRunner, testHandleProfiling=null, testFunctionalTest=null, signingConfig=null, resConfig=null, mBuildConfigFields={}, mResValues={}, mProguardFiles=[], mConsumerProguardFiles=[], mManifestPlaceholders={}}
Run Code Online (Sandbox Code Playgroud)
即使我的工作build.gradle很乐意支持更改所有构建版本的包名称.救命!
我也尝试将build.gradle的这些新部分包装在一个afterEvaluate
部分中,但这似乎阻止它们运行(可能因为tasks.whenTaskAdded
在评估后不起作用).
归档时间: |
|
查看次数: |
543 次 |
最近记录: |