博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android中使用web3j时出现内存溢出错误:OutOfMemoryError
阅读量:6828 次
发布时间:2019-06-26

本文共 889 字,大约阅读时间需要 2 分钟。

在使用Android和web3j开发时出现了内存溢出错误的异常情况即OutOfMemoryError。

我正在试着在Android应用程序中集成web3j。但是,在加载以太坊钱包文件时,库提供了一个内存不足的异常:

Credentials credentials = WalletUtils.loadCredentials("password", walletFile)

异常exception是这么说的:

java.lang.OutOfMemoryError: Failed to allocate a 268435468 byte allocation with 8050708 free bytes and 244MB until OOM

问题可能在这里:

//com.lambdaworks.crypto.SCrypt#scryptJbyte[] V  = new byte[128 * r * N]; // r: 8, N: 262144, V = byte[268435456]

我知道可以加载credentials,因为另一个项目在Ether Wallet使用web3j,并能够加载相同的以太坊钱包文件。如何解决这个问题?

问题的解决

一个快速解决的方法。在/src/main中创建jniLibs文件夹,并将此加密文件夹中的所有Android文件添加到jniLibs文件夹中,然后编译运行。

注意:需要gradle 0.7.2+将jniLibs自动添加到构建中。

原文《以太坊常见问题和错误》中的:

另外推荐几个很受欢迎全网稀缺的互动教程:

  • ,主要是针对java和android程序员围绕web3j库进行区块链以太坊开发的讲解。
  • ,主要是针对python围绕web3.py进行区块链以太坊应用开发的讲解。
  • ,主要是介绍使用php进行智能合约开发交互,进行账号创建、交易、转账、代币开发以及过滤器和事件等内容。
  • ,主要是介绍使用node.js、mongodb、区块链、ipfs实现去中心化电商DApp实战,适合进阶。
  • ,主要介绍智能合约与dapp应用开发,适合入门。

转载地址:http://seykl.baihongyu.com/

你可能感兴趣的文章
进程间的通信-队列Queue
查看>>
实数集不可数的新证明
查看>>
菜鸡测试的若有所思
查看>>
动手动脑(异常处理)
查看>>
端口复用及重映射
查看>>
性能测试面试问题(一)
查看>>
其他内置函数
查看>>
ES6 基础学习
查看>>
Centos7二进制文件安装MySQL5.7.25
查看>>
多线程下的单例模式
查看>>
ExpandableListView置顶和子list收放
查看>>
微信资源包混淆
查看>>
第二课: 雷电模拟器的多开和打开
查看>>
div内居中图片小组件
查看>>
删除所有存储过程的sql语句
查看>>
Java学习之文件及异常处理
查看>>
802.11n笔记
查看>>
C++ 内存管理之四(new/delete vs malloc/free)
查看>>
前端工程化—部署
查看>>
怀恋g9
查看>>