web3j调用智能合约

有大佬知道怎么解决用web3j调用智能合约非view函数时遇到的余额不足问题吗(insufficient funds for gas * price + value)?我试过私链和infura但都有一样的问题,私钥余额通过web3j查询后也是够的。并且同样的合约,同样的账户调用同样的函数并且同样的gas设置remix是完全能做到的情况下用web3j就报余额不足,还有可能是那些地方出问题了呢?

如果是代币、看看主币的余额够不