AabResGuard
AabResGuard copied to clipboard
build.gradle 没有配置 signingConfigs 时构建失败
失败堆栈如下:
Caused by: java.lang.NullPointerException
at com.bytedance.android.plugin.internal.SigningConfigResolutionKt.getSigningConfigByAppVariant(SigningConfigResolution.kt:37)
at com.bytedance.android.plugin.internal.SigningConfigResolutionKt.getSigningConfigForAGP4(SigningConfigResolution.kt:33)
at com.bytedance.android.plugin.internal.SigningConfigResolutionKt.getSigningConfig(SigningConfigResolution.kt:23)
at com.bytedance.android.plugin.tasks.AabResGuardTask.execute(AabResGuardTask.kt:48)
从 `SigningConfig` 这个定义看,`storeFile` 等字段都是可以为null,是不是可以理解为设计上允许不设置 signingConfigs 的,但是 `SigningConfigResolution#getSigningConfigByAppVariant `中的 `variant.signingConfig` 是可能会为 null 的, gradle api 可能为null的部分代码如下
@Override
public SigningConfig getSigningConfig() {
return readOnlyObjectProvider.getSigningConfig(
component.getVariantDslInfo().getSigningConfig());
}
@Nullable
public SigningConfig getSigningConfig(@Nullable SigningConfig signingConfig) {
if (signingConfig == null) {
return null;
}
SigningConfig readOnlySigningConfig = this.readOnlySigningConfig.get(signingConfig);
if (readOnlySigningConfig == null) {
this.readOnlySigningConfig.put(signingConfig,
readOnlySigningConfig = new ReadOnlySigningConfig(signingConfig));
}
return readOnlySigningConfig;
}
一样的问题, 请问有解决方案了吗
如果只是想在没有密钥的情况下看输出文件的话,建议 bundleDebug 就行。