Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error to ns run android #34

Open
Batyodie opened this issue Oct 23, 2024 · 2 comments
Open

Error to ns run android #34

Batyodie opened this issue Oct 23, 2024 · 2 comments

Comments

@Batyodie
Copy link

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");
@baosj627
Copy link

baosj627 commented Nov 1, 2024

+1

@Batyodie
Copy link
Author

Batyodie commented Dec 4, 2024

@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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants