callstack / callstack/react-native-draco

Android module is the create-react-native-library stub — Draco decode is unimplemented on Android

オープン
#4 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
C++
スター
10
フォーク
0
PR マージ指標
30日以内にマージされた PR はありません

説明

## Environment

@callstack/react-native-draco 0.3.0
React Native 0.86.0, new architecture
Expo SDK 57
iOS: works. Android: unimplemented.

## Description

`android/src/main/java/com/draco/DracoModule.kt` is still the create-react-native-library template: its one method is the example `multiply(a, b)`. There's no Draco decode on Android — the iOS side (`cpp/` + `ios/`) is fully implemented, but an app that installs this package gets working Draco on iOS and a no-op on Android. `codegenConfig.outputDir` also targets iOS only.

On RN 0.86 new arch we additionally saw the Android build fail on `NativeDracoSpec` codegen for any app that merely has the package installed, even without calling it.

Suggested fix: an Android JSI implementation mirroring the iOS one (I may attempt this), or, until then, a clear "iOS only" note in the README plus the autolinking exclusion below so Android builds don't break on install.

## Reproducible Demo

1. Add `@callstack/react-native-draco` to any RN 0.86 new-arch Android app and build — codegen fails on `NativeDracoSpec`.
2. Or just read `android/src/main/java/com/draco/DracoModule.kt`: the only implemented method is `multiply(a, b)`, so decode is a no-op on Android.

Workaround we ship — exclude it from Android autolinking so models fail with a JS error instead of breaking the build:

// react-native.config.js
module.exports = {
dependencies: {
'@callstack/react-native-draco': { platforms: { android: null } },
},
};

> Transparency note: this issue was drafted with AI assistance. I'm a human, I've personally verified the bug and the workaround, and I'm happy to answer any questions or concerns directly. Thanks for the library.

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

Start with android/src/main/java/com/draco/DracoModule.kt and compare its template method with the implemented paths under cpp/ and ios/. Reproduce the React Native 0.86 new-architecture Android build failure and inspect the NativeDracoSpec codegen configuration. Before proceeding, establish whether the scope is Android decoding, an iOS-only documentation/workaround change, or both; done means the selected scope is verified on Android.

索引モデルが issue の本文から書いたものです。

評価

技術スタック
android, cpp, kotlin, react-native
領域
build-system, mobile
issue の種類
バグ
難易度
5/5
見積もり時間
1週間以上
活発さ
静か
明瞭さ
おおむね明確
初心者へのやさしさ
35/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。