草庐IT

android - NoClassDefFoundError com.facebook.react.bridge.WritableNativeMap

coder 2023-12-15 原文

我在尝试加载 jsbundle(离线 React 应用程序)时随机崩溃

mReactInstanceManager = ReactInstanceManager.builder().setApplication(mActivity.getApplication())
.setJSBundleFile(appPath)
.addPackage(mReactPackage).addPackage(new MyCustomReactPackage())
.setUseDeveloperSupport(false)//For performance use false
.setInitialLifecycleState(LifecycleState.RESUMED)
.setNativeModuleCallExceptionHandler(new NativeModuleCallExceptionHandler() {
       @Override
       public void handleException(Exception e) {
            e.printStackTrace();
            Logger.e(TAG,"Exception while opening app "+ Log.getStackTraceString(e));
       }
       })
.build();
reactRootView.startReactApplication(mReactInstanceManager, launchClassName, initialProps);  

堆栈跟踪:

LOCATION com.facebook.react.JSCConfig$1.a()
EXCEPTION java.lang.NoClassDefFoundError
MESSAGE com.facebook.react.bridge.WritableNativeMap
at com.facebook.react.JSCConfig$1.a()(null:14)
    at com.facebook.react.ReactInstanceManager.k()(null:359)
    at com.facebook.react.ReactInstanceManager.j()(null:353)
    at com.facebook.react.ReactInstanceManager.c()(null:295)
    at com.facebook.react.ReactRootView.a()(null:221)
    at com.example.sdk.uidesign.fragments.AppFragment.b()(null:215)
    at com.example.sdk.uidesign.ActivityV2.a()(null:1265)
    at com.example.sdk.uidesign.adapter.AppsAdapter.a()(null:102)
    at com.example.sdk.uidesign.adapter.AppsAdapter.a()(null:37)
    at com.example.sdk.uidesign.a.e$a$1.onClick()(null:135)
    at android.view.View.performClick()(View.java:4790)
    at android.view.View$PerformClick.run()(View.java:19883)
    at android.os.Handler.handleCallback()(Handler.java:739)
    at android.os.Handler.dispatchMessage()(Handler.java:95)
    at android.os.Looper.loop()(Looper.java:135)
    at android.app.ActivityThread.main()(ActivityThread.java:5268)
    at java.lang.reflect.Method.invoke()(Method.java:-2)
    at java.lang.reflect.Method.invoke()(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run()(ZygoteInit.java:902)
    at com.android.internal.os.ZygoteInit.main()(ZygoteInit.java:697)

如有任何帮助,我们将不胜感激。

最佳答案

Android 5.1 有一个 arbitrary limit of 100 dex files

这里我们可以在 runtime/dex_file.cc 中看到

bool DexFile::OpenFromZip(...) {
    ...
    while (i < 100) {
        std::string name = StringPrintf("classes%zu.dex", i)
        ...
    }
    ...
}

所以如果你有超过 100 个 dex 文件,你会得到这个 NoClassDefFoundError。

可以通过禁用预索引来避免此错误

一种可能的解决方法是禁用 preDexLibraries,这会减少 apk 中包含的 classes.dex 文件的数量。

添加

android {
    dexOptions {
        preDexLibraries false
    }
}

到应用程序的 build.gradle 文件

java.lang.NoClassDefFoundError when running app with Android 5.1 with Android Studio 2.2RC

更新:

似乎真正的问题与使用 soloader 加载 fbjni 库有关。 我们最终通过预加载 soloader 库解决了这个问题

import com.facebook.soloader.SoLoader;

@Override public void onCreate() {

...
...
SoLoader.init(getApplicationContext(), /* native exopackage */ false);
//SoLoader.loadLibrary("fbjni"); //uncomment this line if the issue is not resolved
}

关于android - NoClassDefFoundError com.facebook.react.bridge.WritableNativeMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44568756/

有关android - NoClassDefFoundError com.facebook.react.bridge.WritableNativeMap的更多相关文章

  1. ruby-on-rails - 如何在 Rails Controller Action 上触发 Facebook 像素 - 2

    我有一个ruby​​onrails应用程序。我按照facebook的说明添加了一个像素。但是,要跟踪转化,Facebook要求您将页面置于达到预期结果时出现的转化中。即,如果我想显示客户已注册,我会将您注册后转到的页面作为成功对象进行跟踪。我的问题是,当客户注册时,在我的应用程序中没有登陆页面。该应用程序将用户带回主页。它在主页上显示了一条消息,所以我想看看是否有一种方法可以跟踪来自Controller操作而不是实际页面的转化。我需要计数的Action没有页面,它们是ControllerAction。是否有任何人都知道的关于如何执行此操作的gem、文档或最佳实践?这是进入布局文件的像素

  2. 安卓apk修改(Android反编译apk) - 2

    最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路

  3. ruby-on-rails - 使用 HTTP.get_response 检索 Facebook 访问 token 时出现 Rails EOF 错误 - 2

    我试图在我的网站上实现使用Facebook登录功能,但在尝试从Facebook取回访问token时遇到障碍。这是我的代码:ifparams[:error_reason]=="user_denied"thenflash[:error]="TologinwithFacebook,youmustclick'Allow'toletthesiteaccessyourinformation"redirect_to:loginelsifparams[:code]thentoken_uri=URI.parse("https://graph.facebook.com/oauth/access_token

  4. ruby - 我需要从 facebook 游戏中抓取数据——使用 ruby - 2

    修改(澄清问题)我已经花了几天时间试图弄清楚如何从Facebook游戏中抓取特定信息;但是,我遇到了一堵又一堵砖墙。据我所知,主要问题如下。我可以使用Chrome的检查元素工具手动查找我需要的html-它似乎位于iframe中。但是,当我尝试抓取该iframe时,它​​是空的(属性除外):如果我使用浏览器的“查看页面源代码”工具,这与我看到的输出相同。我不明白为什么我看不到iframe中的数据。答案不是它是由AJAX之后添加的。(我知道这既是因为“查看页面源代码”可以读取Ajax添加的数据,也是因为我有b/c我一直等到我可以看到数据页面之后才抓取它,但它仍然不存在)。发生这种情况是因为

  5. ruby-on-rails - Ruby 长时间运行的进程对队列事件使用react - 2

    我有一个将某些事件写入队列的Rails3应用。现在我想在服务器上创建一个服务,每x秒轮询一次队列,并按计划执行其他任务。除了创建ruby​​脚本并通过cron作业运行它之外,还有其他稳定的替代方案吗? 最佳答案 尽管启动基于Rails的持久任务是一种选择,但您可能希望查看更有序的系统,例如delayed_job或Starling管理您的工作量。我建议不要在cron中运行某些东西,因为启动整个Rails堆栈的开销可能很大。每隔几秒运行一次它是不切实际的,因为Rails上的启动时间通常为5-15秒,具体取决于您的硬件。不过,每天这样做几

  6. ruby - 单个 EventMachine react 器中的多个服务器 - 2

    是否可以在单个事件机器中运行多个服务器?我的意思是,多个服务可以由一个客户端连接同时使用。例如,登录服务器对用户进行身份验证,然后用户可以同时使用聊天室和简单的游戏,例如带有单个客户端套接字的跳棋?或者我是否需要为每个服务使用多个事件机器react器? 最佳答案 我试过了,它正在工作:#!/usr/bin/envrubyrequire'eventmachine'moduleEchoServerdefpost_initputs"--someoneconnectedtotheechoserver!"enddefreceive_datad

  7. ruby-on-rails - 将 Facebook Connect 与 Authlogic 结合使用 - 2

    我正在尝试使Authlogic和FacebookConnect(使用Facebook)发挥良好的作用,以便您可以通过正常注册方式或使用Facebookconnect创建帐户。我已经能够让连接以一种方式工作,但注销只会在facebook而不是我的网站上注销,我必须删除cookie才能使其正常工作。任何帮助都会很棒,谢谢! 最佳答案 这是我使用FacebookConnect扩展、authlogic和OpenID制作的示例应用程序。它仍然需要一些工作,但它确实起作用了。http://big-glow-mama.heroku.com/htt

  8. ruby-on-rails - Facebook Canvas 应用程序不保存 session - 2

    我制作了一个测试facebook应用程序只是为了玩玩,我正在使用session来存储身份验证。我正在使用omniauth。当我从http://fbbtest.heroku.com/登录时然后刷新页面,session仍然保存,它说我已经登录。当我从Canvas上尝试时http://apps.facebook.com/herokutestapp/它让我登录,重定向回来并说我已登录但是当我手动刷新它然后说我没有登录。我必须对rails3中的session做一些特别的事情以便它也可以在FacebookCanvas?这是我目前在我的Controller和View中拥有的内容defindexend

  9. ruby-on-rails - 来自 Rails Heroku 的 Facebook Open Graph - 2

    我一整天都在与这个问题作斗争,真的需要一些意见。我有一个在HerokuCedar上运行的Rails应用程序(3.1.3),试图使用gemfb_graph(2.4.0)发布一些FacebookOpenGraph操作。这是我的代码。beginapp=FbGraph::Application.new(ENV['facebook_app_id'])me=FbGraph::User.me(user.facebook_access_token)logger.info"Facebook:User#{user.name}reviewinggame#{game_url(review.game)}"act

  10. ruby-on-rails - 如何允许 Facebook 页面管理员仅选择他们希望我的应用程序管理的特定页面(manage_pages) - 2

    我正在使用RubyonRails和Koalagem构建一个facebook应用程序来构建我自己的登录流程。https://github.com/arsduo/koalahttps://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow/我的问题很简单。假设以下情况:-尝试连接到我的应用程序的用户有多个他们管理的Facebook页面。我希望他们能够只选择他们希望我管理的特定页面,同时拒绝访问其余页面。原因是许多将使用我的应用程序的管理员管理大量页面。当我只需要一小部分页面的权限时,我无法想象他们会

随机推荐