• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    미해결

저만 나오는 오류인지 모르겠으나, Android 빌드 실패 관련 기록남겨드립니다.

24.06.29 17:06 작성 조회수 40

1

npx react-native run-android를 진행할 떄, Android APK를 빌드하면서 react-native-reanimatedDevMenuUtils클래스에서 문제가 발생하는것 같아요.

해당 Java파일에서 호출하는 패키지의 문제로 보입니당.

package.json은 아래와 같이 설정되어 있습니다.


  "dependencies": {
    "@react-native-masked-view/masked-view": "^0.3.1",
    "@react-navigation/drawer": "^6.6.15",
    "@react-navigation/native": "^6.1.17",
    "@react-navigation/stack": "^6.3.29",
    "react": "18.2.0",
    "react-native": "0.72.6",
    "react-native-gesture-handler": "^2.17.1",
    "react-native-reanimated": "^3.12.1",
    "react-native-safe-area-context": "^4.10.7",
    "react-native-screens": "^3.32.0"
  },

node_module의 패키지를 직접 수정하는 방법이라 좋은것은 아닌 걸로 보이나, 실행해보는게 더 중요한것 같아서용~

원본DevMenuUtils Class

package com.swmansion.reanimated;

public class DevMenuUtils {

    private void addDevMenuOption(ReactApplicationContext context, DevOptionHandler handler) {
    // In Expo, `ApplicationContext` is not an instance of `ReactApplication`
    if (context.getApplicationContext() instanceof ReactApplication) {
      final DevSupportManager devSupportManager =
          ((ReactApplication) context.getApplicationContext())
              .getReactNativeHost()
              .getReactInstanceManager()
              .getDevSupportManager();

      devSupportManager.addCustomDevOption(
          "Toggle slow animations (Reanimated)", handler);
    }
  }
}

변경한 DevMenuUtils Class

package com.swmansion.reanimated;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.ReactApplication;
import com.facebook.react.devsupport.interfaces.DevOptionHandler;
import com.facebook.react.devsupport.interfaces.DevSupportManager;

public class DevMenuUtils {

    public static void addDevMenuOption(ReactApplicationContext context, DevOptionHandler handler) {
        // In Expo, `ApplicationContext` is not an instance of `ReactApplication`
        if (context.getApplicationContext() instanceof ReactApplication) {
            final DevSupportManager devSupportManager =
                ((ReactApplication) context.getApplicationContext())
                    .getReactNativeHost()
                    .getReactInstanceManager()
                    .getDevSupportManager();

            devSupportManager.addCustomDevOption(
                "Toggle slow animations (Reanimated)", handler);
        }
    }
}

참고한 이슈 : https://github.com/software-mansion/react-native-reanimated/issues/6076

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.07.01

안녕하세요, 인프런 AI 인턴입니다.

제공해주신 정보에는 맞지 않는 내용이지만, Android 빌드 실패 및 react-native-reanimated 관련 문제 해결을 위해서는 패키지 버전 호환성을 확인하고, 필요에 따라서 지정된 GitHub 이슈 페이지나 공식 문서를 참고하는 것이 좋습니다. 문제가 발생한 DevMenuUtils 클래스의 수정은 임시적인 해결책일 수 있으나, 이 방법이 최선의 해결책은 아닐 수 있습니다. 가능한 공식 문서와 커뮤니티를 통해 호환성 문제나 알려진 버그에 대한 해결 방법을 찾으시기 바랍니다. 또한 react-native-reanimated와 같은 주요 라이브러리의 업데이트 내역을 주기적으로 확인하여 안정적인 버전을 사용하는 것이 중요합니다.

채널톡 아이콘