Error to ns run android
When I try to set up Open Native for a nativescript vue project, errors occur when I launch Android. It seems I have done everything according to the documentation.
Note: Recompile with -Xlint:deprecation for details.
/Users/semyonnemtyrev/projects/www-mobile-app/node_modules/@open-native/core/react-android/bridge/src/main/java/com/bridge/Bridge.java:33: error: cannot find symbol
public static Packages packages = new Packages();
^
symbol: class Packages
location: class Bridge
/Users/semyonnemtyrev/projects/www-mobile-app/node_modules/@open-native/core/react-android/bridge/src/main/java/com/bridge/Bridge.java:33: error: cannot find symbol
public static Packages packages = new Packages();
^
symbol: class Packages
location: class Bridge
/Users/semyonnemtyrev/projects/www-mobile-app/node_modules/@open-native/core/react-android/bridge/src/main/java/com/bridge/Bridge.java:42: error: cannot find symbol
Packages.init();
^
symbol: variable Packages
location: class Bridge
/Users/semyonnemtyrev/projects/www-mobile-app/node_modules/@open-native/core/react-android/bridge/src/main/java/com/bridge/Bridge.java:44: error: package Packages does not exist
for (String module: Packages.moduleClasses.keySet()) {
^
/Users/semyonnemtyrev/projects/www-mobile-app/node_modules/@open-native/core/react-android/bridge/src/main/java/com/bridge/Bridge.java:61: error: cannot find symbol
for (ReactPackage pkg : Packages.list) {
^
symbol: variable Packages
location: class Bridge
/Users/semyonnemtyrev/projects/www-mobile-app/node_modules/@open-native/core/react-android/bridge/src/main/java/com/bridge/Bridge.java:83: error: cannot find symbol
for (ReactPackage pkg : Packages.list) {
^
symbol: variable Packages
location: class Bridge
/Users/semyonnemtyrev/projects/www-mobile-app/node_modules/@open-native/core/react-android/bridge/src/main/java/com/bridge/Bridge.java:101: error: package Packages does not exist
Class clazz = Packages.moduleClasses.get(name);
^
/Users/semyonnemtyrev/projects/www-mobile-app/node_modules/@open-native/core/react-android/bridge/src/main/java/com/bridge/Bridge.java:170: error: package Packages does not exist
return Packages.modulePackageMap.keySet();
^
/Users/semyonnemtyrev/projects/www-mobile-app/node_modules/@open-native/core/react-android/bridge/src/main/java/com/bridge/Bridge.java:174: error: package Packages does not exist
return Packages.moduleClasses.get(name) != null || Packages.modulePackageMap.get(name) != null;
^
/Users/semyonnemtyrev/projects/www-mobile-app/node_modules/@open-native/core/react-android/bridge/src/main/java/com/bridge/Bridge.java:174: error: package Packages does not exist
return Packages.moduleClasses.get(name) != null || Packages.modulePackageMap.get(name) != null;
^
/Users/semyonnemtyrev/projects/www-mobile-app/node_modules/@open-native/core/react-android/bridge/src/main/java/com/bridge/Bridge.java:194: error: package Packages does not exist
Class moduleClass = Packages.moduleClasses.get(name);
^
/Users/semyonnemtyrev/projects/www-mobile-app/node_modules/@open-native/core/react-android/bridge/src/main/java/com/bridge/Bridge.java:199: error: package Packages does not exist
String modulePackageName = Packages.modulePackageMap.get(name);
^
/Users/semyonnemtyrev/projects/www-mobile-app/node_modules/@open-native/core/react-android/bridge/src/main/java/com/bridge/Bridge.java:210: error: package Packages does not exist
return !Packages.moduleClasses.containsValue(clazz);
^
/Users/semyonnemtyrev/projects/www-mobile-app/node_modules/@open-native/core/react-android/bridge/src/main/java/com/bridge/Bridge.java:216: error: package Packages does not exist
if (!Packages.moduleClasses.containsValue(moduleClass)) {
^
/Users/semyonnemtyrev/projects/www-mobile-app/node_modules/@open-native/core/react-android/bridge/src/main/java/com/bridge/Bridge.java:238: error: package Packages does not exist
if (Packages.moduleClasses.containsValue(moduleClass)) {
^
/Users/semyonnemtyrev/projects/www-mobile-app/node_modules/@open-native/core/react-android/bridge/src/main/java/com/bridge/Bridge.java:239: error: package Packages does not exist
for (java.util.Map.Entry<String, Class> keyValuePair: Packages.moduleClasses.entrySet()) {
^
/Users/semyonnemtyrev/projects/www-mobile-app/node_modules/@open-native/core/react-android/bridge/src/main/java/com/bridge/Bridge.java:258: error: package Packages does not exist
String pkgName = Packages.modulePackageMap.get(name);
^
Note: /Users/semyonnemtyrev/projects/www-mobile-app/node_modules/@open-native/core/react-android/bridge/src/main/java/com/bridge/Bridge.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: /Users/semyonnemtyrev/projects/www-mobile-app/node_modules/@open-native/core/react-android/bridge/src/main/java/com/bridge/Bridge.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
17 errors
My package.json.
{
"dependencies": {
"@nativescript-use/vue": "^0.0.44",
"@nativescript/core": "~8.8.2",
"@nativescript/firebase-analytics": "^3.3.2",
"@nativescript/firebase-core": "^3.3.2",
"@nativescript/firebase-messaging": "^3.3.2",
"@nativescript/local-notifications": "^6.2.1",
"@open-native/core": "^2.0.0",
"nativescript-vue": "^3.0.0-rc.2",
"nativescript-webview-interface": "^1.4.5",
"nativescript-yandex-appmetrica": "https://github.com/dmitribd/nativescript-yandex-appmetrica"
},
"devDependencies": {
"@nativescript/android": "^8.8.2",
"@nativescript/ios": "^8.8.2",
"@nativescript/preview-cli": "1.0.13",
"@nativescript/types": "^8.8.0",
"@nativescript/webpack": "~5.0.0",
"@types/node": "^22.5.5",
"dotenv": "^16.4.5",
"typescript": "^5.4.5"
}
}
app.gradle
// You can add your native dependencies here
dependencies {
// implementation 'androidx.multidex:multidex:2.0.1'
//
implementation 'androidx.core:core-splashscreen:1.0.1'
}
android {
compileSdkVersion 34
buildToolsVersion "34"
// ndkVersion ""
defaultConfig {
minSdkVersion 23
targetSdkVersion 34
// Version Information
versionCode 1
versionName "1.0.0"
generatedDensities = []
}
aaptOptions {
additionalParameters "--no-version-vectors"
}
}
before-plugins.gradle
// this configurations is loaded before building plugins, as well as before building
// the app - this is where you can apply global settings and overrides
project.ext {
// androidXAppCompat = "1.4.1"
// androidXExifInterface = "1.3.3"
// androidXFragment = "1.4.1"
// androidXMaterial = "1.5.0"
// androidXMultidex = "2.0.1"
// androidXTransition = "1.4.1"
// androidXViewPager = "1.0.0"
// useKotlin = true
// kotlinVersion = "1.6.0"
// okHttpVersion = "4.9.2"
}
apply from: new File(["node", "--print", "require.resolve('@open-native/core/package.json')"].execute(null, rootDir).text.trim(), "../scripts/open-native.gradle");
settings.gradle
apply from: new File(["node", "--print", "require.resolve('@open-native/core/package.json')"].execute(null, rootDir).text.trim(), "../scripts/native_modules.gradle");
+1
@baosj627 Looks like I found out what my problem was. When running the ns clean command, I configured it to clean the hooks folder, which is needed for open-native to work. Try removing this folder from pathsToClean in nativescript.config.ts and reinstalling @open-native/core
I used these settings on a bare Vue 3 project and was able to use the third party module react-native.
{
"name": "open-native",
"main": "app/app.ts",
"version": "1.0.0",
"private": true,
"dependencies": {
"@nativescript/core": "^8.8.6",
"@open-native/core": "^2.0.4",
"nativescript-vue": "3.0.0-rc.2",
"react-native-device-info": "^14.0.1"
},
"devDependencies": {
"@nativescript/android": "^8.4.0",
"@nativescript/ios": "^8.8.2",
"@nativescript/preview-cli": "1.0.13",
"@nativescript/types": "^8.8.0",
"@nativescript/webpack": "~5.0.0",
"@types/node": "^22.5.5",
"glob": "^11.0.0",
"typescript": "^5.4.5"
}
}
import { NativeScriptConfig } from "@nativescript/core";
export default {
id: "org.nativescript.openNative",
appPath: "app",
appResourcesPath: "App_Resources",
cli: {
pathsToClean: ["platforms"],
},
android: {
v8Flags: "--expose_gc",
markingMode: "none",
},
} as NativeScriptConfig;
Open-native hooks asked me to also install a glob dependency for development.