首先,这不是以下问题:
Fixed in Android Studio 4.2
IDE freezes on macOS Big Sur: Android Studio 4.1 might freeze when you open a dialog.
Run Code Online (Sandbox Code Playgroud)
我使用的版本高于 4.2,即使我将“首选选项卡”的系统设置更改为“从不”,冻结问题仍然存在。
IDE 每天死机超过 5 次,大多发生在构建时,并且该项目使用 Jetpack Compose,必须 CMD+OPTION+ESC 杀死进程并重新启动。
有关环境的更多信息:
Android Studio Bumblebee | 2021.1.1 Patch 1
Build #AI-211.7628.21.2111.8139111, built on February 2, 2022
Runtime version: 11.0.11+0-b60-7772763 aarch64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
macOS 12.1
GC: G1 Young Generation, G1 Old Generation
Memory: 2048M
Cores: 8
Registry: external.system.auto.import.disabled=true
Non-Bundled Plugins: …Run Code Online (Sandbox Code Playgroud) 我无法从 Playstore 控制台内的崩溃日志中找出导致崩溃的原因,它显示的是 android.runtime.JavaProxyThrowable。有时也会显示该地点,但未显示引发的原始异常。它是一个跨平台的 xamarin 表单应用程序。在我的情况下,日志看起来像
android.runtime.JavaProxyThrowable: at StackCardView.Com.Wenchao.Cardstack.CardStack.ICardEventListener.Discarded (System.Int32 p0, System.Int32 p1) [0x00000] in <9395370f1a304c7290a7531b2c3dfd4d>:0
at Com.Wenchao.Cardstack.CardStack+ICardEventListenerInvoker.n_Discarded_II (System.IntPtr jnienv, System.IntPtr native__this, System.Int32 p0, System.Int32 p1) [0x00009] in <54ad445d01d649f18c501aeb89761ae6>:0
at (wrapper dynamic-method) System.Object:97ca24d4-0414-43c1-a8ee-a1e52f293935 (intptr,intptr,int,int)
at md5d9e2c345da228fe4f95e9f8464432261.StackCardView.n_discarded (Native Method)
at md5d9e2c345da228fe4f95e9f8464432261.StackCardView.discarded (StackCardView.java:50)
at com.wenchao.cardstack.CardStack$2$1.onAnimationEnd (CardStack.java:184)
at com.wenchao.cardstack.CardAnimator$3.onAnimationEnd (CardAnimator.java:178)
at android.animation.AnimatorSet$AnimatorSetListener.onAnimationEnd (AnimatorSet.java:855)
at android.animation.ValueAnimator.endAnimation (ValueAnimator.java:1239)
at android.animation.ValueAnimator$AnimationHandler.doAnimationFrame (ValueAnimator.java:766)
at android.animation.ValueAnimator$AnimationHandler$1.run (ValueAnimator.java:801)
at android.view.Choreographer$CallbackRecord.run (Choreographer.java:920)
at android.view.Choreographer.doCallbacks (Choreographer.java:695)
at android.view.Choreographer.doFrame (Choreographer.java:628)
at android.view.Choreographer$FrameDisplayEventReceiver.run (Choreographer.java:906)
at android.os.Handler.handleCallback (Handler.java:739)
at android.os.Handler.dispatchMessage (Handler.java:95)
at android.os.Looper.loop (Looper.java:158) …Run Code Online (Sandbox Code Playgroud) 鉴于:
List<String> str = Arrays.asList ("my", "pen", "is", "your", "pen");
Predicate<String> test = s -> {
int i = 0;
boolean result = s.contains ("pen");
System.out.print((i++) + ":");
return result;
};
Run Code Online (Sandbox Code Playgroud)
这打印: 0:0:
str.stream().filter(test).findFirst();
Run Code Online (Sandbox Code Playgroud)
这将打印 0:0:0:0:0:
str.stream().filter(test).collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
令我困惑的是,无论是findFirst还是collect,无论终端操作是否短路,它们都应该遍历列表中的每个项目,对吗?
那么为什么在第一个示例 findFirst 中,“0:”被打印两次,而不是一次,而不是5 次?