Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Animation Android上的颤振动画:D/skia(22985):无法反转viewmatrix 复制步骤_Animation_Dart_Flutter - Fatal编程技术网

Animation Android上的颤振动画:D/skia(22985):无法反转viewmatrix 复制步骤

Animation Android上的颤振动画:D/skia(22985):无法反转viewmatrix 复制步骤,animation,dart,flutter,Animation,Dart,Flutter,在不深入代码的情况下,我会在每次时间更改时触发一个动画,其中: @override Widget build(BuildContext context) { if (this._currentTime != widget.amountOfTime) { this._changeTimeAnimation(); } return new AnimatedBuilder( animation: this._animation, buil

在不深入代码的情况下,我会在每次时间更改时触发一个动画,其中:

@override
Widget build(BuildContext context) {

    if (this._currentTime != widget.amountOfTime) {
      this._changeTimeAnimation();
    }

    return new AnimatedBuilder(
      animation: this._animation,
      builder: (BuildContext context, Widget child) => this._flipAnimation(child),
      child: new Text(
        this._currentTime,
        textAlign: TextAlign.left,
        style: new TextStyle(fontSize: 100.0),
      ),
    );
  }
以下是。_flipAnimation()的内容:

Transform _flipAnimation(Widget child) {
    /// Function used to generate a flip animation for the time

    final Matrix4 transform = new Matrix4.identity()
      ..scale(1.0, this._animation.value, 1.0);

    return Transform(
      transform: transform,
      alignment: FractionalOffset.center,
      child: child,
    );
  }
每次触发动画时,我都会收到消息
D/skia(22985):无法反转viewmatrix
。为什么呢

我会注意到,动画似乎在设备上工作得很好,但打印输出很奇怪

日志 在
颤振运行后

Performing full restart...
Restarted app in 2,182ms.
D/skia    (22985): Could not invert viewmatrix
D/skia    (22985): Could not invert viewmatrix
D/skia    (22985): Could not invert viewmatrix
D/skia    (22985): Could not invert viewmatrix
D/skia    (22985): Could not invert viewmatrix
颤振医生 运行
颤振医生-v
后:

[✓] Flutter (Channel beta, v0.2.8, on Mac OS X 10.13.4 17E199, locale en-US)
    • Flutter version 0.2.8 at /Users/jvanderen11/flutter
    • Framework revision b397406561 (13 days ago), 2018-04-02 13:53:20 -0700
    • Engine revision c903c217a1
    • Dart version 2.0.0-dev.43.0.flutter-52afcba357

[✓] Android toolchain - develop for Android devices (Android SDK
27.0.3)
    • Android SDK at /Users/jvanderen11/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-27, build-tools 27.0.3
    • Java binary at: /Applications/Developer Tools/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)
    • All Android licenses accepted.

[✓] iOS toolchain - develop for iOS devices (Xcode 9.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 9.3, Build version 9E145
    • ios-deploy 1.9.2
    • CocoaPods version 1.5.0

[✓] Android Studio (version 3.1)
    • Android Studio at /Applications/Developer Tools/Android Studio.app/Contents
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)

[✓] IntelliJ IDEA Ultimate Edition (version 2018.1.1)
    • IntelliJ at /Users/jvanderen11/Applications/JetBrains Toolbox/IntelliJ IDEA Ultimate.app
    • Flutter plugin version 23.1.3
    • Dart plugin version 181.4203.498

[✓] Connected devices (1 available)
    • Android SDK built for x86 • emulator-5554 • android-x86 • Android 7.1.1 (API 25) (emulator)

• No issues found!

错误的原因是,当缩放为(1.0,0.0,1.0)时,它会导致矩阵Skia不喜欢(可能无效-请参阅,我认为是)

一个简单的解决方法是确保你永远不会真正通过scale(1.0,0.0,1.0),无论是通过修改你的代码,还是每次向数字中添加一个非常小的量,即
.scale(1.0,这个。_animation.value+smallval,1.0)


显然Simulal1E-100太小,因为它在SKIa的C++转换中丢失了,但是 Simuly= 0万日元、1万日元、0.00亿日元、7000亿美元、/<代码>确实如此。?当小部件从其父部件(即中心(子部件:ListTimeWidget(时间单位:timeUnit))构建时,它似乎会立即发生嗯。每个动画只发生一次吗?从您的日志中不清楚这是多个动画还是只有一个。我想知道这是否与缩放1.0、0.0、1.0有关,因为我认为这会导致无效矩阵(请参见和)。作为一种解决方法,您可以尝试

.scale(1.0,this.\u animation.value+1e-100,1.0)这样可以避免乘以零而不影响它。伟大的建议!安卓仍然在<代码> 1E-100中抛出错误,但它确实像<代码> 0亿日元、1亿日元、0.00亿日元、十亿美元/十亿欧元> <代码>好的哈哈,可能是从飞镖双到C++浮法/双倍的转换。(不管他们在底层的Skia库中使用什么)。很高兴我能为他们服务,我将把它添加为一个答案,因为我们实际上不应该在注释中回答=)