Skip to content

Commit 6328ef6

Browse files
bealqiuclaude
andcommitted
fix(android): 防止Image.resolveAssetSource返回null导致闪退
部分安卓机型resolveAssetSource可能返回null, 直接访问.uri会抛异常导致模块初始化时闪退。 添加安全访问和try-catch兜底。 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 21ff228 commit 6328ef6

2 files changed

Lines changed: 14 additions & 2 deletions

File tree

packages/app-expo/src/lib/platform/track-player-dashscope-player.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,13 @@ import TrackPlayer, { Event, State } from "react-native-track-player";
88
import { ensureSilenceFile } from "./tts-silence-keeper";
99

1010
const CHUNK_MAX_CHARS = 500;
11-
const DEFAULT_ARTWORK = Image.resolveAssetSource(require("../../../assets/icon.png")).uri;
11+
const DEFAULT_ARTWORK = (() => {
12+
try {
13+
return Image.resolveAssetSource(require("../../../assets/icon.png"))?.uri || "";
14+
} catch {
15+
return "";
16+
}
17+
})();
1218

1319
export class TrackPlayerDashScopeTTSPlayer implements ITTSPlayer {
1420
private static readonly INITIAL_BUFFER_CHUNKS = 8;

packages/app-expo/src/lib/platform/track-player-edge-player.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,13 @@ import TrackPlayer, { Event, State } from "react-native-track-player";
77
import { ensureSilenceFile } from "./tts-silence-keeper";
88

99
const CHUNK_MAX_CHARS = 500;
10-
const DEFAULT_ARTWORK = Image.resolveAssetSource(require("../../../assets/icon.png")).uri;
10+
const DEFAULT_ARTWORK = (() => {
11+
try {
12+
return Image.resolveAssetSource(require("../../../assets/icon.png"))?.uri || "";
13+
} catch {
14+
return "";
15+
}
16+
})();
1117

1218
export class TrackPlayerEdgeTTSPlayer implements ITTSPlayer {
1319
private static readonly INITIAL_BUFFER_CHUNKS = 8;

0 commit comments

Comments
 (0)