Реагировать Виро, нажимать очень долго, чтобы запустить релиз

#android #ios #react-native

#Android #iOS #react-native

Вопрос:

В настоящее время я работаю над Ar-приложением в react native версии 0.55 и react-viro версии 2.12.0. Это приложение, похожее на pokemon, где на странице AR есть пункт, на который можно кликнуть. Когда пользователь нажимает на него, открывается модальный. В dev (вот полная команда: adb reverse tcp: 8081 tcp: 8081 amp;amp; react-native run-android —variant=Ardebug) это появляется сразу. Но когда мы запускаем его в режиме release, для появления модального параметра требуется не менее одной минуты.

Код для страницы :

  <ViroARScene onTrackingUpdated={this._onInitialized}>
        <ViroSpotLight
          innerAngle={5}
          outerAngle={45}
          direction={[0, -1, -0.2]}
          color="#ffffff"
          castsShadow={true}
          influenceBitMask={2}
          shadowMapSize={2048}
          shadowNearZ={2}
          shadowFarZ={5}
          shadowOpacity={0.7}
        />
        <ViroAmbientLight color="#ffffff" />
        <ViroNode ref={_setARNodeRef} onClick={this.tryGain}>
          <Viro3DObject
            position={[x, 0, z]}
            scale={[0.5, 0.5, 0.5]}
            rotation={[0, 0, 0]}
            source={require(`${ROOT_3D_ASSET}chest/coffre_bois_obj.obj`)}
            resources={[

              require(`${ROOT_3D_ASSET}chest/coffre_bois_mtl.mtl`),
              require(`${ROOT_3D_ASSET}chest/wood.jpg`),
              require(`${ROOT_3D_ASSET}chest/wood2.jpg`),
              require(`${ROOT_3D_ASSET}chest/gold.jpg`)
            ]}
            onLoadStart={this._onLoadStart}
            onLoadEnd={this._onLoadEnd}
            onError={this._onError}
            lightReceivingBitMask={3}
            shadowCastingBitMask={2}
            type="OBJ"
          />
        </ViroNode>
      </ViroARScene>
  

и функция для события щелчка

 tryGain = _ => {
    this.clickInterval=setInterval(() => (this.hasClicked = false), 500);// in case click, goes nowherer
    if (this.hasClicked) {
      return;
    }

    handleTryGain.call(this, this.props.activeGainPoiId, this.props.isDemo);
    this.hasClicked = true;

  };
  

Это тот же код, поэтому я не уверен, почему так много различий. У кого-нибудь была такая же проблема?

Спасибо

Ответ №1:

итак, я разобрался с проблемой, посмотрев на журнал cat. Из-за этих реквизитов onLoadStart, onLoadEnd amp; amp; onError я выводил журналы ошибок, которые перекрывали приложение, вызывая задержку. Я исправил проблему, просто удалив их в Viro3DObject

 <Viro3DObject ... same 
-> Deleted onLoadStart={this._onLoadStart} 
-> Deleted onLoadEnd={this._onLoadEnd} 
-> Deleted onError={this._onError} lightReceivingBitMask={3} shadowCastingBitMask={2} type="OBJ" />
  

Все еще есть некоторые ошибки, но это не влияет на приложение