Реагировать нативный компонент внутри приложения Android, проблема OkHttp - PullRequest
0 голосов
/ 15 октября 2018

У меня есть приложение для 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

Итак, я добавил - compile ('com.facebook.react: Reaction-native: + ', {модуль исключения: "okhttp" модуль исключения:' bolts-android '})

Теперь приложение собирается и работает нормально.Но при переходе к фрагменту, где добавлен мой ReactRootView, я получаю следующее исключение -

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)

Пожалуйста, дайте мне знать, что мне не хватает

...