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

Open
#4 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
35/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Quiet
Tech stack
android, cpp, kotlin, react-native

Research direction

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.

Written by the indexing model from the issue text.

Description

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.

Dominant language
C++
Stars
10
Forks
0
PR merge metrics
No merged PRs in 30d

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from callstack/react-native-draco

All issues in callstack/react-native-draco

Similar issues

More C++ issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.