Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 这里映射sdk以响应本机组件_Android_React Native - Fatal编程技术网

Android 这里映射sdk以响应本机组件

Android 这里映射sdk以响应本机组件,android,react-native,Android,React Native,我这里有一个地图sdk的问题。我试图从本机端创建一个compmonent,并从react本机端调用。但我有这个问题。我无法把地图初始化。 我从emulator得到这个错误 这是我的密码: HereMapView.java: public class HereMapView extends MapViewLite { private static final String TAG = HereMapView.class.getSimpleName(); private MapVi

我这里有一个地图sdk的问题。我试图从本机端创建一个compmonent,并从react本机端调用。但我有这个问题。我无法把地图初始化。

我从emulator得到这个错误

这是我的密码:

HereMapView.java:

public class HereMapView extends MapViewLite {
    private static final String TAG = HereMapView.class.getSimpleName();
    private MapViewLite mapView;

    public HereMapView(ThemedReactContext reactContext) {
        super(reactContext);
        loadMapScene();
    }


    private void loadMapScene() {
        // Load a scene from the SDK to render the map with a map style.
        mapView.getMapScene().loadScene(MapStyle.NORMAL_DAY, new MapScene.LoadSceneCallback() {
            @Override
            public void onLoadScene(@Nullable MapScene.ErrorCode errorCode) {
                if (errorCode == null) {
                    mapView.getCamera().setTarget(new GeoCoordinates(52.530932, 13.384915));
                    mapView.getCamera().setZoomLevel(14);
                } else {
                    Log.d(TAG, "onLoadScene failed: " + errorCode.toString());
                }
            }
        });
    }


    @Override
    public void onPause() {
        super.onPause();
        this.onPause();
    }

    @Override
    public void onResume() {
        super.onResume();
        this.onResume();
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        this.onDestroy();
    }

}
public class HereMapManager  extends ViewGroupManager<HereMapView> {
    private static final String TAG = HereMapManager.class.getSimpleName();
    static final String REACT_CLASS = "HereMapView";
    public Activity activity;
    public HereMapManager(Activity activity){
        this.activity = activity;
    }
    @Override
    public String getName() {
        return REACT_CLASS;
    }

    @Override
    protected HereMapView createViewInstance(ThemedReactContext reactContext) {
        return new HereMapView(reactContext);
    }
}
public class HereMapModule extends ReactContextBaseJavaModule {
    private static final String TAG = HereMapModule.class.getSimpleName();

    HereMapModule(ReactApplicationContext reactContext) {
        super(reactContext);
    }

    @Override
    public String getName() {
        return "HereMapView";
    }
    public Activity getActivity() {
        return getCurrentActivity();
    }

    public static void closeQuietly(Closeable closeable) {
        if (closeable == null) return;
        try {
            closeable.close();
        } catch (IOException ignored) {
        }
    }
}
public class HereMapPackage implements ReactPackage {
    protected Activity activity;
    public HereMapPackage() {
    }

    public HereMapPackage(Activity activity) {
        this.activity = activity;
    } // backwards compatibility
    @Override
    public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
        return Arrays.<NativeModule>asList(new HereMapModule(reactContext));
    }

    public List<Class<? extends JavaScriptModule>> createJSModules() {
        return Collections.emptyList();
    }

    @Override
    public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
        //HereMapManager mapManager = new HereMapManager(reactContext);
        HereMapManager mapManager = new HereMapManager(this.activity);
        return Arrays.<ViewManager>asList(mapManager);
    }
}
@Override
        protected List<ReactPackage> getPackages() {
          @SuppressWarnings("UnnecessaryLocalVariable")
          List<ReactPackage> packages = new PackageList(this).getPackages();
            packages.add(new HereMapPackage());
          return packages;
        }
const HereMapView = requireNativeComponent('HereMapView');
const App: () => React$Node = () => {
  return (
    <SafeAreaView style={styles.screen}>
      <View style={styles.screen}>
        <HereMapView style={{flex : 1}} />
      </View>
    </SafeAreaView>
  );
};
HereMapManager.java:

public class HereMapView extends MapViewLite {
    private static final String TAG = HereMapView.class.getSimpleName();
    private MapViewLite mapView;

    public HereMapView(ThemedReactContext reactContext) {
        super(reactContext);
        loadMapScene();
    }


    private void loadMapScene() {
        // Load a scene from the SDK to render the map with a map style.
        mapView.getMapScene().loadScene(MapStyle.NORMAL_DAY, new MapScene.LoadSceneCallback() {
            @Override
            public void onLoadScene(@Nullable MapScene.ErrorCode errorCode) {
                if (errorCode == null) {
                    mapView.getCamera().setTarget(new GeoCoordinates(52.530932, 13.384915));
                    mapView.getCamera().setZoomLevel(14);
                } else {
                    Log.d(TAG, "onLoadScene failed: " + errorCode.toString());
                }
            }
        });
    }


    @Override
    public void onPause() {
        super.onPause();
        this.onPause();
    }

    @Override
    public void onResume() {
        super.onResume();
        this.onResume();
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        this.onDestroy();
    }

}
public class HereMapManager  extends ViewGroupManager<HereMapView> {
    private static final String TAG = HereMapManager.class.getSimpleName();
    static final String REACT_CLASS = "HereMapView";
    public Activity activity;
    public HereMapManager(Activity activity){
        this.activity = activity;
    }
    @Override
    public String getName() {
        return REACT_CLASS;
    }

    @Override
    protected HereMapView createViewInstance(ThemedReactContext reactContext) {
        return new HereMapView(reactContext);
    }
}
public class HereMapModule extends ReactContextBaseJavaModule {
    private static final String TAG = HereMapModule.class.getSimpleName();

    HereMapModule(ReactApplicationContext reactContext) {
        super(reactContext);
    }

    @Override
    public String getName() {
        return "HereMapView";
    }
    public Activity getActivity() {
        return getCurrentActivity();
    }

    public static void closeQuietly(Closeable closeable) {
        if (closeable == null) return;
        try {
            closeable.close();
        } catch (IOException ignored) {
        }
    }
}
public class HereMapPackage implements ReactPackage {
    protected Activity activity;
    public HereMapPackage() {
    }

    public HereMapPackage(Activity activity) {
        this.activity = activity;
    } // backwards compatibility
    @Override
    public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
        return Arrays.<NativeModule>asList(new HereMapModule(reactContext));
    }

    public List<Class<? extends JavaScriptModule>> createJSModules() {
        return Collections.emptyList();
    }

    @Override
    public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
        //HereMapManager mapManager = new HereMapManager(reactContext);
        HereMapManager mapManager = new HereMapManager(this.activity);
        return Arrays.<ViewManager>asList(mapManager);
    }
}
@Override
        protected List<ReactPackage> getPackages() {
          @SuppressWarnings("UnnecessaryLocalVariable")
          List<ReactPackage> packages = new PackageList(this).getPackages();
            packages.add(new HereMapPackage());
          return packages;
        }
const HereMapView = requireNativeComponent('HereMapView');
const App: () => React$Node = () => {
  return (
    <SafeAreaView style={styles.screen}>
      <View style={styles.screen}>
        <HereMapView style={{flex : 1}} />
      </View>
    </SafeAreaView>
  );
};
HereMapPackage:

public class HereMapView extends MapViewLite {
    private static final String TAG = HereMapView.class.getSimpleName();
    private MapViewLite mapView;

    public HereMapView(ThemedReactContext reactContext) {
        super(reactContext);
        loadMapScene();
    }


    private void loadMapScene() {
        // Load a scene from the SDK to render the map with a map style.
        mapView.getMapScene().loadScene(MapStyle.NORMAL_DAY, new MapScene.LoadSceneCallback() {
            @Override
            public void onLoadScene(@Nullable MapScene.ErrorCode errorCode) {
                if (errorCode == null) {
                    mapView.getCamera().setTarget(new GeoCoordinates(52.530932, 13.384915));
                    mapView.getCamera().setZoomLevel(14);
                } else {
                    Log.d(TAG, "onLoadScene failed: " + errorCode.toString());
                }
            }
        });
    }


    @Override
    public void onPause() {
        super.onPause();
        this.onPause();
    }

    @Override
    public void onResume() {
        super.onResume();
        this.onResume();
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        this.onDestroy();
    }

}
public class HereMapManager  extends ViewGroupManager<HereMapView> {
    private static final String TAG = HereMapManager.class.getSimpleName();
    static final String REACT_CLASS = "HereMapView";
    public Activity activity;
    public HereMapManager(Activity activity){
        this.activity = activity;
    }
    @Override
    public String getName() {
        return REACT_CLASS;
    }

    @Override
    protected HereMapView createViewInstance(ThemedReactContext reactContext) {
        return new HereMapView(reactContext);
    }
}
public class HereMapModule extends ReactContextBaseJavaModule {
    private static final String TAG = HereMapModule.class.getSimpleName();

    HereMapModule(ReactApplicationContext reactContext) {
        super(reactContext);
    }

    @Override
    public String getName() {
        return "HereMapView";
    }
    public Activity getActivity() {
        return getCurrentActivity();
    }

    public static void closeQuietly(Closeable closeable) {
        if (closeable == null) return;
        try {
            closeable.close();
        } catch (IOException ignored) {
        }
    }
}
public class HereMapPackage implements ReactPackage {
    protected Activity activity;
    public HereMapPackage() {
    }

    public HereMapPackage(Activity activity) {
        this.activity = activity;
    } // backwards compatibility
    @Override
    public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
        return Arrays.<NativeModule>asList(new HereMapModule(reactContext));
    }

    public List<Class<? extends JavaScriptModule>> createJSModules() {
        return Collections.emptyList();
    }

    @Override
    public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
        //HereMapManager mapManager = new HereMapManager(reactContext);
        HereMapManager mapManager = new HereMapManager(this.activity);
        return Arrays.<ViewManager>asList(mapManager);
    }
}
@Override
        protected List<ReactPackage> getPackages() {
          @SuppressWarnings("UnnecessaryLocalVariable")
          List<ReactPackage> packages = new PackageList(this).getPackages();
            packages.add(new HereMapPackage());
          return packages;
        }
const HereMapView = requireNativeComponent('HereMapView');
const App: () => React$Node = () => {
  return (
    <SafeAreaView style={styles.screen}>
      <View style={styles.screen}>
        <HereMapView style={{flex : 1}} />
      </View>
    </SafeAreaView>
  );
};
公共类HereMapPackage实现ReactPackage{
受保护的活动;
公共映射包(){
}
公共地图包(活动){
这个。活动=活动;
}//向后兼容性
@凌驾
公共列表createNativeModules(ReactApplicationContext reactContext){
返回Arrays.asList(新的HereMapModule(reactContext));
}

public list我认为您为HereMapView.java发布的代码与您发布的堆栈跟踪不匹配,因为跟踪提到了第46行,但您发布的代码只有45行。请看例程loadMapScene的第一行。调用mapView.getMapScene()时,成员mapView的值是多少?我没有在代码库中包含导入。这就是为什么存在45行代码的原因。我不想让代码拥挤。这有点让行号难以匹配,不是吗?