2017-02-13 11 views
0

Am попытке подключить AFRAME внутри реагируют родной, но при запуске в эмуляторе я получаю эту ошибку:React/AFRAME ошибка объекта правопреемником

One of the sources for assign has an enumerable key on the prototype chain. Are you trying to assign a prototype property? We don't allow it, as this is an edge case that we do not support. This error is a performance optimization and no spec compliant. 

Я использую AFRAME 0.5.0 и React-Native 0.41.2

Ошибка выбрасывается из строки 56 polyfills.js и относится к этому разделу aframe-master.js: 55729.

Object.assign(THREE.MTLLoader.prototype, THREE.EventDispatcher.prototype, { 

Есть ли способ обойти это? Нужно ли мне модифицировать aframe, чтобы использовать другое задание, или я могу каким-то образом преодолеть это?

Я запускаю очень простой мир привет, он просто не пытается загрузить зависимости. В других связанных проблемах люди говорили, что они обошли это, используя lodash.assign или Object.defineProperties - это жизнеспособное решение для этого? Тем не менее, я могу вернуться к более старой версии реакции-native, но мне идеально хотелось бы использовать последнюю версию с кадром.

https://github.com/facebook/react-native/issues/5507

https://github.com/facebook/react-native/issues/3634

** UPDATE ** Ok Я попытался откате, установлен реагировать родной 0.36.1 и переключил сайт я загружаю в WebView использовать AFRAME 0.3.2 ,

код у меня в React родное приложение это:

Ok Я попытался откате, установлен реагировать родной 0.36.1 с помощью rninit, и переключился на сайт я загружаю в WebView, чтобы использовать AFRAME 0.3.2.

код у меня в React родное приложение это:

import React, { Component } from 'react'; 
// import ReactDOM from 'react-dom'; 
import { 
    AppRegistry, 
    WebView 
} from 'react-native'; 

export default class test4 extends Component { 
    render() { 
    return (
     <WebView source={{uri: 'http://[theurl]/test.html'}}/> 
    ); 
    } 
} 


AppRegistry.registerComponent('test4',() => test4); 

AFRAME приложение это:

<!DOCTYPE html> 
<html> 
    <head> 
     <title>A-Frame walkthrough (final)</title> 
     <script src="/aframe.js"></script> 

    </head> 
<body> 
    <a-scene> 
    <a-assets> 
     <img id="circle" src="circle.png"/> 
    </a-assets> 


     <a-sky src="Ephesus4_1.jpg" rotation="0 -130 0"></a-sky> 
    </a-scene> 

</html> 

И когда я открываю отладчик, проверив WebView из хрома : // проверять # устройства, я получаю этот вывод:

Mozilla/5.0 (Linux; Android 6.0; Android SDK built for x86_64 Build/MASTER; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/44.0.2403.119 Mobile Safari/537.36 
aframe.js:54681 Recalculating device params. 
aframe.js:54718 User agent: Mozilla/5.0 (Linux; Android 6.0; Android SDK built for x86_64 Build/MASTER; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/44.0.2403.119 Mobile Safari/537.36 
aframe.js:54719 Pixel width: 2562 
aframe.js:54720 Pixel height: 1442 
aframe.js:54762 No DPDB device match. 
aframe.js:54683 New device parameters: 
aframe.js:54684 null 
aframe.js:54692 Failed to recalculate device parameters.Dpdb.recalculateDeviceParams_ @ aframe.js:54692 
aframe.js:54654 Fetching DPDB... 
aframe.js:53106 Using fallback Android device measurements. 
aframe.js:56388 Failed to load viewer profile: TypeError: Cannot read property 'getItem' of null 
    at Emitter.ViewerSelector (http://ec2-52-62-186-186.ap-southeast-2.compute.amazonaws.com:8080/aframe.js:56386:36) 
    at VRDisplay.CardboardVRDisplay (http://ec2-52-62-186-186.ap-southeast-2.compute.amazonaws.com:8080/aframe.js:52607:26) 
    at WebVRPolyfill.populateDevices (http://ec2-52-62-186-186.ap-southeast-2.compute.amazonaws.com:8080/aframe.js:56694:17) 
    at WebVRPolyfill.getVRDisplays (http://ec2-52-62-186-186.ap-southeast-2.compute.amazonaws.com:8080/aframe.js:56743:8) 
    at new THREE.VRControls (http://ec2-52-62-186-186.ap-southeast-2.compute.amazonaws.com:8080/aframe.js:66848:13) 
    at Object.119.../lib/three (http://ec2-52-62-186-186.ap-southeast-2.compute.amazonaws.com:8080/aframe.js:66227:16) 
    at s (http://ec2-52-62-186-186.ap-southeast-2.compute.amazonaws.com:8080/aframe.js:1:620) 
    at http://ec2-52-62-186-186.ap-southeast-2.compute.amazonaws.com:8080/aframe.js:1:671 
    at Object.122../bind (http://ec2-52-62-186-186.ap-southeast-2.compute.amazonaws.com:8080/aframe.js:66358:25) 
    at s (http://ec2-52-62-186-186.ap-southeast-2.compute.amazonaws.com:8080/aframe.js:1:620)ViewerSelector @ aframe.js:56388 
aframe.js:53096 Uncaught TypeError: Cannot read property 'distortionCoefficients' of undefined 
aframe.js:54662 Successfully loaded online DPDB. 
aframe.js:54681 Recalculating device params. 
aframe.js:54718 User agent: Mozilla/5.0 (Linux; Android 6.0; Android SDK built for x86_64 Build/MASTER; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/44.0.2403.119 Mobile Safari/537.36 
aframe.js:54719 Pixel width: 2562 
aframe.js:54720 Pixel height: 1442 
aframe.js:54762 No DPDB device match. 
aframe.js:54683 New device parameters: 
aframe.js:54684 null 
aframe.js:54692 Failed to recalculate device parameters.Dpdb.recalculateDeviceParams_ @ aframe.js:54692 
http://ec2-52-62-186-186.ap-southeast-2.compute.amazonaws.com:8080/favicon.ico Failed to load resource: the server responded with a status of 404 (Not Found) 

Любые рекомендации будут оценены!

Я также получаю это в самом эмуляторе андроида:

com.facebook.react.common.JavascriptException: { «стек»: "Ошибка: Не удалось выполнить„importScripts“на„WorkerGlobalScope“: сценарий на http://localhost:8081/index.android.bundle?platform=android&dev=true&hot=false&minify=false "не удалось загрузить. \ п в executeApplicationScript (http://localhost:8081/ebuggerWorker.js:207) \ п на OnMessage (http://localhost:8081/debuggerWorker.js:38.5)"}

я получаю ту же ошибку, даже если я переключиться на не AFRAME сайте грузили в WebView.

+0

Привет Тоби, не могли бы вы опубликовать версию reactjs и AFRAME вы используете? –

+0

Yep Aframe 0.5.0 и React-native 0.41.2, добавили к вопросу –

+0

Мое успешное развертывание использовало aframe 0.3.2 и React-native 0.36.1. Я бы рекомендовал вам перейти на тестирование. Также, основываясь на ваших исследованиях, проблема, похоже, больше связана с реакцией на основе конца. Вы пытались загрузить собственный веб-просмотр в своем приложении, а не реагировать? –

ответ

0

После многих беспорядков, я обнаружил, что многие из моих проблем были связаны с попыткой тестирования в симуляторе.

При работе на устройстве мне удалось получить приложение, на котором установлена ​​последняя версия кадра, работающая с последней версией native-native, но только путем настройки реакции-native для перекомпиляции проекта android из исходного java , потянув от текущего ведущего устройства.

Мне также пришлось включить аппаратное ускорение в Android.Manifest.

Благодаря Chris Chen для оказания помощи