Android应用程序内部的React Native组件,OkHttp问题

时间:2018-10-15 08:29:13

标签: android reactjs react-native ibm-mobilefirst react-native-android

我有一个现有的Android应用程序,需要在其中实现React Native组件。实际上,这是一个worklight项目结构。 我已经添加了所有必需的文件,并添加了ReactRootView,就像这样-

ReactRootView mReactRootView = new ReactRootView(getActivity());
        mReactInstanceManager = ReactInstanceManager.builder()
                .setApplication(getActivity().getApplication())
                .setBundleAssetName("index.android.bundle")
                .setJSMainModuleName("index")
                .addPackage(new MainReactPackage())
                .setUseDeveloperSupport(BuildConfig.DEBUG)
                .setInitialLifecycleState(LifecycleState.BEFORE_RESUME)
                .build();
        mReactRootView.startReactApplication(mReactInstanceManager, 
"MyReactNativeApp", null);

        FrameLayout fl = (FrameLayout) fragmentView.findViewById(R.id.rct);
        fl.addView(mReactRootView);

在运行代码时,我收到此错误-

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':transformClassesWithJarMergingForDebug'.
> com.android.build.api.transform.TransformException: 
java.util.zip.ZipException: duplicate entry: 
com/squareup/okhttp/Address.class

所以我添加了- 编译('com.facebook.react:react-native:+',{         排除模块:“ okhttp”         排除模块:“ bolts-android”     })

现在,该应用程序可以构建并正常运行。但是在导航到添加了我的ReactRootView的片段n时,我收到了以下异常-

Process: com.kohls.mcommerce.opal, PID: 5895
java.lang.NoSuchMethodError: No virtual method setWriteTimeout(JLjava/util/concurrent/TimeUnit;)V in class Lcom/squareup/okhttp/OkHttpClient; or its super classes (declaration of 'com.squareup.okhttp.OkHttpClient' appears in /data/app/com.kohls.mcommerce.opal-2/base.apk:classes3.dex)
    at com.facebook.react.devsupport.DevServerHelper.<init>(DevServerHelper.java:103)
    at com.facebook.react.devsupport.DevSupportManagerImpl.<init>(DevSupportManagerImpl.java:123)
    at com.facebook.react.ReactInstanceManagerImpl.<init>(ReactInstanceManagerImpl.java:266)
    at com.facebook.react.ReactInstanceManager$Builder.build(ReactInstanceManager.java:279)
    at com.kohls.mcommerce.opal.framework.view.fragment.AccountUserFragment.initializeViews(AccountUserFragment.java:259)
    at com.kohls.mcommerce.opal.framework.view.fragment.BaseFragment.onActivityCreated(BaseFragment.java:66)
    at com.kohls.mcommerce.opal.framework.view.fragment.AccountUserFragment.onActivityCreated(AccountUserFragment.java:167)
    at android.app.Fragment.performActivityCreated(Fragment.java:2362)
    at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1014)
    at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1171)
    at android.app.BackStackRecord.run(BackStackRecord.java:816)
    at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1578)
    at android.app.FragmentController.execPendingActions(FragmentController.java:371)
    at android.app.Activity.performStart(Activity.java:6695)
    at android.app.Activity.performRestart(Activity.java:6770)
    at android.app.Activity.performResume(Activity.java:6775)
    at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3406)
    at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3469)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1527)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:154)
    at android.app.ActivityThread.main(ActivityThread.java:6119)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

请让我知道我在想什么

0 个答案:

没有答案