React native 如何使用react本机计费
根据标题,我的应用程序在我使用React native 如何使用react本机计费,react-native,in-app-purchase,React Native,In App Purchase,根据标题,我的应用程序在我使用purchase()方法时立即崩溃 在一个干净的react本地项目上测试:我刚刚发布了react-native init testProj,npm安装,npm安装--保存react-native计费,react-native链接react-native计费。 然后我继续在我的MainApplication.java中设置新的InAppBillingBridgePackage(APP_KEY) 这是我在index.android.js中编辑的唯一代码 export d
purchase()
方法时立即崩溃
在一个干净的react本地项目上测试:我刚刚发布了react-native init testProj
,npm安装
,npm安装--保存react-native计费
,react-native链接react-native计费
。
然后我继续在我的MainApplication.java中设置新的InAppBillingBridgePackage(APP_KEY)
这是我在index.android.js中编辑的唯一代码
export default class testProj extends Component {
componentDidMount() {
const InAppBilling = require("react-native-billing")
console.log(InAppBilling)
InAppBilling.open()
.then(() => InAppBilling.purchase('android.test.purchased'))
.then((details) => {
console.log("You purchased: ", details)
return InAppBilling.close()
})
.catch((err) => {
console.log(err);
});
}
render() {...}
package.json
{
"name": "testProj",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node node_modules/react-native/local-cli/cli.js start",
"test": "jest"
},
"dependencies": {
"react": "16.0.0-alpha.12",
"react-native": "0.46.3",
"react-native-billing": "^2.3.0"
},
"devDependencies": {
"babel-jest": "20.0.3",
"babel-preset-react-native": "2.1.0",
"jest": "20.0.4",
"react-test-renderer": "16.0.0-alpha.12"
},
"jest": {
"preset": "react-native"
}
}
一旦应用程序到达这个组件didmount
,一个购买对话框会在瞬间加载,然后在后台使我的应用程序和Play Store崩溃。在上述过程中运行adb logcat*:E
,显示:
E/AndroidRuntime(31592): FATAL EXCEPTION: AsyncTask #4
E/AndroidRuntime(31592): Process: com.android.vending, PID: 31592
E/AndroidRuntime(31592): java.lang.RuntimeException: An error occured while executing doInBackground()
E/AndroidRuntime(31592): at android.os.AsyncTask$3.done(AsyncTask.java:304)
E/AndroidRuntime(31592): at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
E/AndroidRuntime(31592): at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
E/AndroidRuntime(31592): at java.util.concurrent.FutureTask.run(FutureTask.java:242)
E/AndroidRuntime(31592): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
E/AndroidRuntime(31592): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
E/AndroidRuntime(31592): at java.lang.Thread.run(Thread.java:818)
E/AndroidRuntime(31592): Caused by: java.lang.NullPointerException: Attempt to read from field 'long com.google.wireless.android.finsky.dfe.nano.an.b' on a null object reference
E/AndroidRuntime(31592): at com.google.android.finsky.billing.lightpurchase.s.a(SourceFile:5)
E/AndroidRuntime(31592): at com.google.android.finsky.billing.lightpurchase.h.doInBackground(SourceFile:27)
E/AndroidRuntime(31592): at android.os.AsyncTask$2.call(AsyncTask.java:292)
E/AndroidRuntime(31592): at java.util.concurrent.FutureTask.run(FutureTask.java:237)
E/AndroidRuntime(31592): ... 3 more
长话短说:我是否遗漏了一些明显的东西?使用静态响应测试应用内计费时会发生这种情况。新版本的Google Play Store似乎有问题。我们测试了3个版本的Play Store。 7.4正常工作,7.8和8.0崩溃 目前,我们也在寻找解决方案