微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

点燃CLIReact Native+ Facebook SDK = Android Multidex?

如何解决点燃CLIReact Native+ Facebook SDK = Android Multidex?

好的,所以实际上只是作为健全性检查发布,并确保我没有把我的android都弄错了。从本质上讲,似乎需要使用multiDexEnabled truenot best practice,因为这意味着应用程序变得越来越“大”,又名肿。但是使用我正在使用的工具几乎不需要花钱,我将在下面概述。

TL; DR:使用multidex似乎是一种不好的做法,是否有其他解决方案?

从香草Ignite CLI Bowser project(用于React Native的模板引擎)开始,然后根据官方指南添加React Native Facebook SDK,会导致android应用程序生成错误。 / p>

ignite new TestApp

cd TestApp && yarn add react-native-fbsdk && npx react-native link react-native-fbsdk

Android Guide之后,对 TestApp/android/app/src/main/java/com/testapp/MainApplication.javaTestApp/android/settings.gradle

然后,按照链接的Facebook SDK指南(auth wall),对TestApp/android/app/build.gradleTestApp/android/app/src/main/res/values/strings.xmlTestApp/android/app/src/main/AndroidManifest.xml进行相关更改

然后运行npx react-native run-android,将导致以下构建错误

FAILURE: Build Failed with an exception.

* What went wrong:
Execution Failed for task ':app:mergeDexDebug'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
   > com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: 
     The number of method references in a .dex file cannot exceed 64K.
     Learn how to resolve this issue at https://developer.android.com/tools/building/multidex.html

更多搜索指向在模块multiDexEnabled true中将defaultConfig添加build.gradle的修复,它确实解决错误。问题在于,大多数解决方案还会导致其他解决方案指出图书馆管理不善,导入过多等。

那么,我是在做错什么,还是这仅仅是使用Facebook SDK和Ignite CLI的结果,我对此无能为力?我只是担心,因为我希望向该应用程序添加多个提供者的OAuth,但不希望一个永远不会加载的肿的应用程序。

解决方法

它与项目中使用的库无关,而是与所用方法的数量有关。

When your app and the libraries it references exceed 65,536 methods,you encounter a build error that indicates your app has reached the limit of the Android build architecture,您必须打开multidex才能支持更多方法。

https://developer.android.com/studio/build/multidex

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。