NativeScript / android

NativeScript for Android using v8
https://docs.nativescript.org/guide/android-marshalling
Apache License 2.0
518 stars 136 forks source link

missing android-dts-generator.jar - ns typings android not working #1802

Open vallemar opened 8 months ago

vallemar commented 8 months ago

Issue Description

I'm trying to make the types: ns typings android --aar ./colorpickerview-2.3.0.aar

When I try this I have the following output

vallemar@macbook-pro-de-juan nativescript-reordering % ns typings android --aar ./colorpickerview-2.3.0.aar
No platforms folder found, preparing project now...
Preparing project...
assets by path sources/ 17.7 MiB
   assets by path fonts/*.ttf 17.6 MiB
     asset fonts/MaterialSymbolsRounded.ttf 10.1 MiB [compared for emit] [from: src/fonts/MaterialSymbolsRounded.ttf] [copied]
     asset fonts/MaterialSymbolsOutlined.ttf 7.39 MiB [compared for emit] [from: src/fonts/MaterialSymbolsOutlined.ttf] [copied]
     asset fonts/UberMove-Light.ttf 53.7 KiB [compared for emit] [from: src/fonts/UberMove-Light.ttf] [copied]
   assets by path fonts/*.otf 111 KiB
     asset fonts/UberMoveBold.otf 56 KiB [compared for emit] [from: src/fonts/UberMoveBold.otf] [copied]
     asset fonts/UberMoveMedium.otf 55.2 KiB [compared for emit] [from: src/fonts/UberMoveMedium.otf] [copied]
assets by path *.js 10.2 MiB
   asset vendor.js 8.62 MiB [compared for emit] (name: vendor) (id hint: defaultVendor)
   asset bundle.js 1.61 MiB [compared for emit] (name: bundle)
   asset runtime.js 12.8 KiB [compared for emit] (name: runtime)
asset assets/lottie/confetti.json 29.7 KiB [compared for emit] [from: src/assets/lottie/confetti.json] [copied]
Entrypoint bundle 10.2 MiB = runtime.js 12.8 KiB vendor.js 8.62 MiB bundle.js 1.61 MiB
orphan modules 23.1 KiB [orphan] 15 modules
runtime modules 2.72 KiB 8 modules
modules by path ./node_modules/ 3.18 MiB
   javascript modules 2.91 MiB 430 modules
   json modules 273 KiB
     modules by path ./node_modules/mdn-data/css/*.json 242 KiB 3 modules
     modules by path ./node_modules/css-tree/ 30.7 KiB 2 modules
modules by path ./src/ 476 KiB
   modules by path ./src/components/*.vue 53.8 KiB 45 modules
   modules by path ./src/views/*.vue 38.1 KiB 10 modules
   modules by path ./src/*.ts 13.8 KiB 6 modules
   modules by path ./src/utils/*.ts 347 KiB 3 modules
   + 4 modules
external "~/package.json" 42 bytes [optional] [built] [code generated]
webpack 5.89.0 compiled successfully in 2344 ms
Webpack compilation complete.
Updating runtime package.json with configuration values...
Project successfully prepared (android)
Error: Unable to access jarfile /Users/vallemar/workspaces/test/nativescript-reordering/platforms/android/build-tools/dts-generator.jar

I have looked inside the folder and the dts-generator.jar file does not exist

Reproduction

No response

Relevant log output (if applicable)

No response

Environment

OS: macOS 14.1
CPU: (12) arm64 Apple M2 Max
Shell: /bin/zsh
node: 18.14.0
npm: 9.3.1
nativescript: 8.6.1

# android
java: 11.0.18
ndk: Not Found
apis: Not Found
build_tools: Not Found
system_images: Not Found

# ios
xcode: 15.0/15A240d
cocoapods: 1.13.0
python: 3.11.5
python3: 3.11.5
ruby: 2.7.7
platforms: 
  - DriverKit 23.0
  - iOS 17.0
  - macOS 14.0
  - tvOS 17.0
  - watchOS 10.0

Dependencies

"dependencies": {
  "@akylas/nativescript": "^8.5.10",
  "@nativescript-community/ui-collectionview": "^5.3.3",
  "@nativescript-community/ui-collectionview-swipemenu": "^5.3.3",
  "@nativescript-community/ui-lottie": "^5.0.6",
  "@nativescript-community/ui-material-bottomsheet": "^7.2.4",
  "@nativescript-community/ui-material-tabs": "^7.2.4",
  "@nativescript-community/ui-persistent-bottomsheet": "^0.0.29",
  "@nativescript-community/ui-popover": "^0.1.9",
  "@nativescript-use/vue": "^0.0.26",
  "@nativescript/stackblitz": "^0.0.8",
  "dayjs": "^1.11.10",
  "nativescript-vue": "3.0.0-beta.10",
  "patch-package": "^8.0.0",
  "pinia": "^2.1.7"
},
"devDependencies": {
  "@nativescript/android": "8.6.2",
  "@nativescript/core": "^8.6.1",
  "@nativescript/ios": "8.6.1",
  "@nativescript/preview-cli": "1.0.5",
  "@nativescript/tailwind": "^2.0.1",
  "@nativescript/types": "~8.5.0",
  "@nativescript/webpack": "~5.0.0",
  "@types/node": "~17.0.21",
  "tailwindcss": "^3.1.8",
  "typescript": "^5.2.2"
}

Please accept these terms

drangelod commented 7 months ago

I just ran into the same issue after updating my CLI to 8.6.1 and android core to "@nativescript/android": "8.6.2" for a plugin I've been working on. I'm guessing a copy rule broke somewhere in these updates and the jar file is no longer copied to platforms/android/build-tools/dts-generator.jar. I ended up searching for the jar fil, copied it into that folder before running the typings command and it completed successfully.

vpiskunov commented 6 months ago

@drangelod @vallemar which file did you copy into that folder? I've searched for dts-generator.jar and there's nothing - or do you mean to copy the dependency's jar file into that folder? In such case should it be renamed into dts-generator.jar?

Tried doing that (copy+rename) but then running ns typings ... results in

no main manifest attribute, in /Users/mac-user/code-temp/sample-app-vue3/platforms/android/build-tools/dts-generator.jar
vpiskunov commented 6 months ago

Ok, this helped:

git clone https://github.com/NativeScript/android-dts-generator
cd android-dts-generator/dts-generator
./gradlew jar
cp build/libs/dts-generator.jar ../../../<YOUR_PROJECT_PATH>/platforms/android/build-tools/dts-generator.jar

Then, run ns typings android --jar <YOUR_JAR>

@drangelod your previous comment helped, thanks :)

MrSnoozles commented 4 months ago

Thanks everyone, especially @vpiskunov . This helped. Would be great if generating typings would work again out of the box.