4***@qq.com
4***@qq.com
  • 发布:2024-08-19 10:25
  • 更新:2024-09-14 15:58
  • 阅读:262

uni-app项目中在原生插件开发中,有些安卓SDK,必须在Activity中onCreate里进行初始化,有什么解决方案吗

分类:uni-app

你好官方
我原生插件开发中,我集成Android Stripe SDK时遇到了问题。初始化SDK的时候报了如下错误:

LifecycleOwner io.dcloud.PandoraEntryActivity@201c9fc is attempting to register while current state is RESUMED. LifecycleOwners must call register before they are STARTED.

我的诉求:有没有什么解决方案,能让这个方法顺利初始化。包括uts或者其他开发方法都可以。

我的代码:

@UniJSMethod(uiThread = true)  
    public void initStripe(UniJSCallback callback){  
        Log.e(TAG,"initStripe is run");  
        FragmentActivity activity = (FragmentActivity)mUniSDKInstance.getContext();  
        try {  
            paymentSheet = new PaymentSheet(activity, new CreateIntentCallback() {  
                @Override  
                public Object onCreateIntent(@NonNull PaymentMethod paymentMethod, boolean b, @NonNull Continuation<? super CreateIntentResult> continuation) {  
                    try {  
                        mContinuation = continuation;  
                        // Make a request to your server to create a SetupIntent and return its client secret  
                        // Replace `myNetworkClient.createIntent` with actual implementation  
                        JSONObject data = new JSONObject();  
                        data.put("code", 0);  
                        data.put("msg", "success");  
                        data.put("paymentMethodId","12312");  
                        callback.invoke(data);  
                    } catch (Exception e) {  
                        JSONObject data = new JSONObject();  
                        data.put("code", 1);  
                        data.put("msg", e.getMessage());  
                        callback.invoke(data);  
                        return new CreateIntentResult.Failure(e, e.getMessage());  
                    }  
                    return null;  
                }  
            }, new PaymentSheetResultCallback() {  
                @Override  
                public void onPaymentSheetResult(@NonNull PaymentSheetResult paymentSheetResult) {  

                }  
            });  
        }catch (Exception e){  
            Log.e(TAG,e.getMessage());  
        }  
    }
2024-08-19 10:25 负责人:无 分享
已邀请:
4***@qq.com

4***@qq.com (作者) - 我就是我,村东头烧锅炉的小伙。

我解决了,想了解方案回帖通知我。

  • qxcl

    怎么解决的,能把方案贴出来么

    2024-09-14 15:47

  • 4***@qq.com (作者)

    回复 qxcl: 解决了

    2024-09-14 15:50

  • 4***@qq.com (作者)

    回复 qxcl: 兄弟,代码我贴出来了,拿走不谢。得之我幸,失之我更幸,一切发生皆有利于我,加油兄弟。

    2024-09-14 16:03

  • qxcl

    回复 4***@qq.com: OK,谢谢兄弟

    2024-09-14 16:54

4***@qq.com

4***@qq.com (作者) - 我就是我,村东头烧锅炉的小伙。

解决步骤就是:
第一步:在application钩子中实现Application.ActivityLifecycleCallbacks
第二步:实现ActivityLifecycleCallbacks中的所有方法,其中onActivityCreated就是执行的onCreate回调,需要判断一下

if(activity instanceof PandoraEntryActivity){  
       // 这里填写要执行的代码  
}

要回复问题请先登录注册