小编TmT*_*ron的帖子

ng build 时超出调用重试次数异常

我正面临一个异常ng build(为差异加载生成 ES5 包......)

An unhandled exception occured: Call retires were exceeded
Run Code Online (Sandbox Code Playgroud)

使用过的版本:

  • 角CLI: 8.3.20
  • 角度: 8.2.7
  • 节点: 12.12.1

同样在日志中,它被提到

[error] Error: Call retries were exceeded at ChildProcessWorker.initialize
Run Code Online (Sandbox Code Playgroud)

angular-cli angular ng-build angular8 angular-cli-v8

63
推荐指数
4
解决办法
5万
查看次数

如何允许 null,但禁止 undefined?

例如,对于数据库行,我们可能需要可为空的属性,并且这些属性不得未定义:

class DbRow {
  @IsNumber()
  id!: number;

  @IsNumber()
  numNullable!: number | null;
}
Run Code Online (Sandbox Code Playgroud)

所以numNullable可以是数字或null- 但绝不能是undefined

我们如何在类验证器中表达这一点?

  • 添加@Optional()不起作用,因为这也将允许undefined
  • 我也没有使用自定义验证器

class-validator

30
推荐指数
2
解决办法
3万
查看次数

没有--min-sdk-version> = 24时使用的默认或静态接口方法

为什么我们在Android Studio 3.0 RC1中出现此错误?

 com.android.dx.cf.code.SimException: 
default or static interface method used without --min-sdk-version >= 24
Run Code Online (Sandbox Code Playgroud)

根据android文档,"默认和静态接口方法"功能与任何 min-sdk版本兼容.

我将其跟踪到一个调用Comparator.naturalOrder()的java库- 它已经在API级别24中添加了.
所以我不希望在java库中对此代码有任何错误消息.

当我在我自己的android-app或lib java代码中使用代码时,我看到正确的lint消息:"Call需要API级别24"

错误消息是错误的还是我错过了什么?

android java-8

18
推荐指数
1
解决办法
6299
查看次数

基于条件的 Rxjs 条件 switchMap

我有如下情况:

myObservable1.pipe(
  switchMap((result1: MyObservable1) => {
    if (condition) {
      return myObservable2;
    } else {
      return of(null);
    }
  })
).subscribe(myObservable1 | myObservable2) => {
Run Code Online (Sandbox Code Playgroud)

因此,如果条件为假,我只需要执行一个请求,如果条件为真,我必须将第一个请求链接到下一个请求,它们本质上是对服务器 api 的两个请求。

有没有更好的解决方案而不返回它null
RxJs 中有条件运算符吗?

谢谢!

conditional-statements rxjs switchmap

18
推荐指数
4
解决办法
2万
查看次数

如何获取数据库的timescaledb版本

根据文档

TimescaleDB 支持在同一个 PostgreSQL 实例中的不同数据库上有不同的扩展版本。

我可以使用此 SQL 命令获取实例的已安装版本:

SELECT extversion
FROM pg_extension
where extname = 'timescaledb';
Run Code Online (Sandbox Code Playgroud)

但是如何获取特定数据库的版本?

笔记:

  • 我更喜欢通过 sql(而不是 psql)获取版本
  • 这样做的原因是我们想知道我们是否必须更新数据库(即执行ALTER EXTENSION timescaledb UPDATE;

timescaledb

18
推荐指数
1
解决办法
7678
查看次数

IntelliJ和Gradle中的注释处理器

tl; dr:我无法配置IntelliJ来生成与gradle相同的目录中的java文件

我有一个使用immutables注释处理器的小项目.它在gradle命令行构建中按预期工作,但我无法让IntelliJ将生成的文件输出到同一目录.

整个项目可在GitLab上获得

Gradle配置:
我使用以下gradle插件:

  • gradle-idea插件,用于处理构思配置
  • gradle-apt-plugin,提供apt配置并处理与注释处理相关的编译类路径和构思配置(如果还应用了构思插件)

build-script的相关部分(链接到完整列表):

apply plugin: 'java'
apply plugin: "net.ltgt.apt"
apply plugin: 'idea'

dependencies {
    def immutablesVersion = '2.3.9'
    compileOnly "org.immutables:value:$immutablesVersion:annotations"
    compileOnly "org.immutables:encode:$immutablesVersion"
    apt "org.immutables:value:$immutablesVersion"
}
Run Code Online (Sandbox Code Playgroud)

当我开始时./gradlew build一切都如预期: 在此输入图像描述

  1. DataEncoding.java处理源文件,生成的java文件DataEncodingEnabled.java最终进入
  2. /build/generated/source/apt/main 根据预期的方案 com.tmtron.immutables.data
  3. 并且生成的文件也被编译为.class文件

在IntelliJ中,我按照gradle-apt-plugin文档的建议激活注释处理: 在此输入图像描述

然后我执行./gradlew clean以确保先前的文件已经消失然后我单击Build- Build Project在IntelliJ中.
执行注释处理器,但问题是生成的java文件最终位于错误的位置: 在此输入图像描述

它位于:/ build/generated/source/apt/main/build/generated/source/apt/main /com.tmtron.immutables.data
,粗体部分是多余的.

我做错了什么以及如何正确设置,以便IntelliJ和gradle在同一目录中生成文件?

笔记:

  • 我当然已经尝试将IntelliJ注释配置中的"生成源目录"留空,但是它不起作用:然后它会自动使用"生成"而我最终也会得到错误的路径.
  • IntelliJ版本2016.3.4

intellij-idea gradle annotation-processing

17
推荐指数
3
解决办法
1万
查看次数

如何检查对程序的引用是否为零?

在以下示例中,调用将AssertTestObj()导致访问冲突.

Project InvokeTest2.exe引发异常类$ C0000005,并显示消息'0x00000000访问冲突:读取地址0x00000000'.

在调试时我可以看到Assigned(NotifyProc)测试中TSafeCall<T>.Invoke()没有按预期工作 - 因此Invoke()尝试执行NotifyProc哪个nil因此导致访问冲突.

任何想法为什么失败以及如何解决它?

program InvokeTest2;

{$APPTYPE CONSOLE}

uses
  System.SysUtils;

type
  TSafeCall<T> = class
  public
    type
      TNotifyProc = reference to procedure (Item: T);
    class procedure Invoke(NotifyProc: TNotifyProc; Item: T); overload;
  end;

  TOnObj = procedure (Value: String) of object;

{ TSafeCall<T> }

class procedure TSafeCall<T>.Invoke(NotifyProc: TNotifyProc; Item: T);
begin
  if Assigned(NotifyProc) then
    NotifyProc(Item);
end;

procedure AssertTestObj(OnExceptionObj_: TOnObj; Value_: String);
begin
  TSafeCall<String>.Invoke(OnExceptionObj_, Value_);
end;

begin
  try …
Run Code Online (Sandbox Code Playgroud)

delphi delphi-xe3

15
推荐指数
1
解决办法
1388
查看次数

android gradle plugin 3.0.0-alpha2:错误膨胀类android.support.v7.widget.FitWindowsLinearLayout

将android gradle插件从3.0.0-alpha1升级到3.0.0-alpha 2后,我的应用程序不再启动:stacktrace的一部分:

05-27 09:14:57.692 3015-3015/com.tmtron.dscontrol2app.debug E/AndroidRuntime: FATAL EXCEPTION: main
  Process: com.tmtron.dscontrol2app.debug, PID: 3015
  java.lang.RuntimeException: Unable to start activity ComponentInfo{com.tmtron.dscontrol2app.debug/com.tmtron.dscontrol2.gui.MainActivity}: android.view.InflateException: Binary XML file line #17: Binary XML file line #17: Error inflating class android.support.v7.widget.FitWindowsLinearLayout
   Caused by: android.view.InflateException: Binary XML file line #17: Binary XML file line #17: Error inflating class android.support.v7.widget.FitWindowsLinearLayout
   Caused by: android.view.InflateException: Binary XML file line #17: Error inflating class android.support.v7.widget.FitWindowsLinearLayout
   Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v7.widget.FitWindowsLinearLayout" on path: DexPathList[[zip file "/data/app/com.tmtron.dscontrol2app.debug-ZE45jTeV6eTnNIeveAjAbw==/base.apk", …
Run Code Online (Sandbox Code Playgroud)

android-gradle-plugin

10
推荐指数
1
解决办法
1131
查看次数

IntelliJ Docker 终端不再接受输入

突然我的 Docker 终端停止接受键盘输入。

  • 终端中的光标闪烁,但id不接受任何输入
  • 即使通过鼠标粘贴文本也不起作用(即复制文本,在终端中右键单击,选择Paste

在此输入图像描述

我尝试过以下方法(没有效果):

  • 重新启动 IntelliJ
  • 删除镜像/容器
  • 尝试其他容器
  • 使用 Attach,执行 /bin/sh,创建终端
  • 重新启动电脑
  • 所有 IntelliJ 修复选项

笔记:

  • 在其他 IntelliJ 窗口中输入正常
  • 当我Open in terminal从 Docker-desktop 使用时,它会打开一个带有 /bin/sh 的终端并且输入有效
  • IntelliJ IDEA 2022.1.3(终极版)

有任何想法吗?

intellij-idea

9
推荐指数
1
解决办法
1665
查看次数

为什么在varDouble变体中为变量分配单个结果?

uses
  SysUtils, Variants;

var
  VariantSingle: Variant;
  VTSingle: TVarType;
  SingleTest: Single;
  VariantDouble: Variant;
  DoubleTest: Double;
  VTDouble: TVarType;

begin
  SingleTest := 1.234;
  VariantSingle := SingleTest;
  VTSingle := VarType(VariantSingle) and varTypeMask;

  DoubleTest := 1.23456;
  VariantDouble := DoubleTest;
  VTDouble := VarType(VariantDouble) and varTypeMask;

  WriteLn(Format('VarType: Single: %d, Double %d', [VTSingle, VTDouble]));
end.
Run Code Online (Sandbox Code Playgroud)

上面的代码将输出:

VarType:单身:5,双人5

来自System.pas

varSingle   = $0004; { vt_r4           4 }
varDouble   = $0005; { vt_r8           5 }
Run Code Online (Sandbox Code Playgroud)

因此,我希望VTSingle是4 - 而不是5
我错过了什么?

delphi variant

8
推荐指数
1
解决办法
943
查看次数