[Q] node.js npm on Android - Android Q&A, Help & Troubleshooting

Hello,
I built node.js for android and it is running great.
Now i need some modules for a new project (serialport,express,socket.io) but I can't use npm on my android device, since i cross compiled node and just put the executable on the device.
Is there a way to use npm on android or what would be the best way to do it?
I also tried building the packages on an arm qemu but the modules weren't working o the android box.
What I am trying to do at the moment is including the modules as core modules when building node, but I am unsure what to include. All modules and all the modules that those modules depend on, etc. etc. This doesn't sound right?
I am following these instructions, that were for a similar problem: github / mapbox / building for android (can't post link sadly)
What would be the best way to achieve it?
Kind regards, egon

I now got it running by installing debian kit on the android box.
Then I just installed node and npm from package manager and did "npm install" in my project folder which worked.

Related

[Q] Building apps with sql (mysql) support problem

Hi,
i`m trying to develop simple ubuntu application. This application should connect to remove mysql server, query and display data in UbuntuListView. Project was created in Qt Creator 3.1.1 as QML app with c++ plugin (cmake).
In my cpp class, i connect to mysql server using QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); according to qt documentation.
On my desktop (ubuntu 14.04) application works fine (after installing libqt5sql5-mysql), but when i tried to run this application on my aquaris E4.5 ubuntu edition (using Framework ubuntu-sdk-14.10) i got this error:
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE
Open database: false
I have found package libqt5sql5-mysql 5.3.0+dfsg-2ubuntu9 (armhf binary) for utopic unicorn. In qt creator, under Tools->Options->Ubuntu, I clicked on Maintain button in Framework ubuntu-sdk-14.10 and install that package. But this didn`t solve my problem.
Do yo have any ideas ?
If you want to include said libaries, you need to ship them as .so files in your click package. Don't ask me how to do it (I don't know in this specific case), but simply installing it in your chroot won't work.

Help with Ruby.

Hello friends! I post this on the off to pic because I can't really find a fitting sub-forum. If you know a better place I can post this thread, please let me know.
I want ruby and Ruby gems to run on my android device (galaxy S4 GT-I9515, not that it matters). I know android is Linux based so there shouldn't be a problem doing this.
Basically, I don't want to use Ruby for development, I just need to use some of it's applications (gems).
I tried ruboto core and ruboto IRB, but couldn't install a gem.
In general, my android won't read "apt-get" command in terminal. I don't know why.
If anyone could help me to run some Ruby gems on my device, I would really appreciate it. Thanks for people who answer!
Android is a Linux kernel, however it is not a full Linux like Debian or Ubuntu.
Android doesn't have a package manager by default (unless with Google Play or other app markets). It doesn't have apt-get.
However, I can say that there's a terminal called Termux in Google Play or F-Droid.
It does have apt and it doesn't require root.
I found Ruby in the apt repos of Termux though.
Code:
$ apt list | grep ruby
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
ruby/stable 2.3.3 arm
ruby-dev/stable 2.3.3 arm
ruby-ri/stable 2.3.3 all
weechat-ruby-plugin/stable 1.6-1 arm
TheKindleMCPEGuy said:
Android is a Linux kernel, however it is not a full Linux like Debian or Ubuntu.
Android doesn't have a package manager by default (unless with Google Play or other app markets). It doesn't have apt-get.
However, I can say that there's a terminal called Termux in Google Play or F-Droid.
It does have apt and it doesn't require root.
I found Ruby in the apt repos of Termux though.
Code:
$ apt list | grep ruby
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
ruby/stable 2.3.3 arm
ruby-dev/stable 2.3.3 arm
ruby-ri/stable 2.3.3 all
weechat-ruby-plugin/stable 1.6-1 arm
Click to expand...
Click to collapse
First of all thanks for the reply!
So, in order to use ruby on android all I have to do is use a more linux-like terminal, and use the command "$ apt list | grep ruby", am I right?
Will I have access to apt-get and commands like that with the new terminal?
FurySh0ck said:
Android is a Linux kernel, however it is not a full Linux like Debian or Ubuntu.
Android doesn't have a package manager by default (unless with Google Play or other app markets). It doesn't have apt-get.
However, I can say that there's a terminal called Termux in Google Play or F-Droid.
It does have apt and it doesn't require root.
I found Ruby in the apt repos of Termux though.
First of all thanks for the reply!
So, in order to use ruby on android all I have to do is use a more linux-like terminal, and use the command "$ apt list | grep ruby", am I right?
Will I have access to apt-get and commands like that with the new terminal?
Click to expand...
Click to collapse
Termux is not really more Linux like, it's still using the same kernel. It downloads a core (other applications, etc) to /data folder. That's how it works.
You will have access to apt in the new terminal. However, there is not much packages in the repo as your Android device is ARM and the packages have to be built into a package file. If you'd like the full experience, consider using a KVM or Xen VPS which run full on distributions (Debian, Ubuntu, etc). They also have more packages over there.
Now to install Ruby, you wouldn't apt list. What you would do in Termux:
Code:
apt install ruby
would install Ruby and you would be able to use it and install gems.
I installed Ruby with that command and confirmed it works:
Code:
$ apt install ruby
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
ruby
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 3587 kB of archives.
After this operation, 18.3 MB of additional disk space will be used.
Get:1 [url]http://termux.net[/url] stable/main arm ruby arm 2.3.3 [3587 kB]
Fetched 3587 kB in 1s (2878 kB/s)
Selecting previously unselected package ruby.
(Reading database ... 2137 files and directories currently installed.)
Preparing to unpack .../archives/ruby_2.3.3_arm.deb ...
Unpacking ruby (2.3.3) ...
Processing triggers for man (1.13.4-3) ...
Setting up ruby (2.3.3) ...
When I ran the
Code:
gem
command I got this:
Code:
$ gem
RubyGems is a sophisticated package manager for Ruby. This is a
basic help message containing pointers to more information.
Usage:
gem -h/--help
gem -v/--version
gem command [arguments...] [options...]
Examples:
gem install rake
gem list --local
gem build package.gemspec
gem help install
Further help:
gem help commands list all 'gem' commands
gem help examples show some examples of usage
gem help gem_dependencies gem dependencies file guide
gem help platforms gem platforms guide
gem help <COMMAND> show help on COMMAND
(e.g. 'gem help install')
gem server present a web page at
[url]http://localhost:8808/[/url]
with info about installed gems
Further information:
[url]http://guides.rubygems.org[/url]
Enjoy!
TheKindleMCPEGuy said:
Termux is not really more Linux like, it's still using the same kernel. It downloads a core (other applications, etc) to /data folder. That's how it works.
You will have access to apt in the new terminal. However, there is not much packages in the repo as your Android device is ARM and the packages have to be built into a package file. If you'd like the full experience, consider using a KVM or Xen VPS which run full on distributions (Debian, Ubuntu, etc). They also have more packages over there.
Now to install Ruby, you wouldn't apt list. What you would do in Termux:
Code:
apt install ruby
would install Ruby and you would be able to use it and install gems.
I installed Ruby with that command and confirmed it works:
Code:
$ apt install ruby
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
ruby
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 3587 kB of archives.
After this operation, 18.3 MB of additional disk space will be used.
Get:1 [url]http://termux.net[/url] stable/main arm ruby arm 2.3.3 [3587 kB]
Fetched 3587 kB in 1s (2878 kB/s)
Selecting previously unselected package ruby.
(Reading database ... 2137 files and directories currently installed.)
Preparing to unpack .../archives/ruby_2.3.3_arm.deb ...
Unpacking ruby (2.3.3) ...
Processing triggers for man (1.13.4-3) ...
Setting up ruby (2.3.3) ...
When I ran the
Code:
gem
command I got this:
Code:
$ gem
RubyGems is a sophisticated package manager for Ruby. This is a
basic help message containing pointers to more information.
Usage:
gem -h/--help
gem -v/--version
gem command [arguments...] [options...]
Examples:
gem install rake
gem list --local
gem build package.gemspec
gem help install
Further help:
gem help commands list all 'gem' commands
gem help examples show some examples of usage
gem help gem_dependencies gem dependencies file guide
gem help platforms gem platforms guide
gem help <COMMAND> show help on COMMAND
(e.g. 'gem help install')
gem server present a web page at
[url]http://localhost:8808/[/url]
with info about installed gems
Further information:
[url]http://guides.rubygems.org[/url]
Enjoy!
Click to expand...
Click to collapse
Awesome! It worked well and neat. +1 For your Thanks-o'-meter.
Now I have some questions about termux, if you could answer:
1) Where does it save all the files? I used
Code:
apt update
and I am going to download packages from now on. I think I should know where it goes / how can I change that save directory.
2) When I tried using root permissions (you know, my device is rooted so I used
Code:
su
in order to gain access) I couldn't use apt commands anymore. I think some of my ruby gems will require root permissions, so I would like further explanation about it (only if you could of course )
FurySh0ck said:
Termux is not really more Linux like, it's still using the same kernel. It downloads a core (other applications, etc) to /data folder. That's how it works.
You will have access to apt in the new terminal. However, there is not much packages in the repo as your Android device is ARM and the packages have to be built into a package file. If you'd like the full experience, consider using a KVM or Xen VPS which run full on distributions (Debian, Ubuntu, etc). They also have more packages over there.
Now to install Ruby, you wouldn't apt list. What you would do in Termux:
would install Ruby and you would be able to use it and install gems.
I installed Ruby with that command and confirmed it works:
When I ran the command I got this:
Awesome! It worked well and neat. +1 For your Thanks-o'-meter.
Now I have some questions about termux, if you could answer:
1) Where does it save all the files? I used and I am going to download packages from now on. I think I should know where it goes / how can I change that save directory.
2) When I tried using root permissions (you know, my device is rooted so I used in order to gain access) I couldn't use apt commands anymore. I think some of my ruby gems will require root permissions, so I would like further explanation about it (only if you could of course )
Click to expand...
Click to collapse
1. It saves inside app data, specific folder is /data/data/com.termux/files/usr/var/cache/apt
2. I don't think su works in Termux really, however my root doesn't work right now so I can't really say a definite answer.
TheKindleMCPEGuy said:
1. It saves inside app data, specific folder is /data/data/com.termux/files/usr/var/cache/apt
2. I don't think su works in Termux really, however my root doesn't work right now so I can't really say a definite answer.
Click to expand...
Click to collapse
That's all I had to ask in this thread.
Thanks!

Android Studio - JDK - Recommended versions and settings on Windows XP 32-bit?

My aims:
- Use Android Studio to develop a basic Android application - should be possible
- Use Android Studio to back up my physical phone (Hisense phone running Nougat 7.0) and create an emulated version of it running on my PC - should be possible, is it?
My PC:
- Windows XP 32-bit
- Pentium Dual Core T2330 processor NOT supporting Intel® Virtualization Technology (VT-x)
- 2 GB RAM
Questions:
- Are the above aims possible to achieve with my PC?
- If yes, what are the recommended Android Studio and Java SE Development Kit versions/settings to use that work for sure?
Story: I have tried to use Android Studio 3.0.1 with various versions of Java SE Development Kit 8 (including 121, 144, and 152) and various settings/hacks constantly running into various bugs/issues, most of which were seemingly resolved by new settings/hacks, yet I ended up with the same error messages after I have tried everything I have found online that nice people suggested on forums.
I am unable to even compile and run a default Android app, I get these error messages:
Gradle build finished with 2 error(s) in 21s 591ms
Error:java.util.concurrent.ExecutionException: java.lang.RuntimeException: No server to serve request. Check logs for details.
Error:Execution failed for task ':app:mergeDebugResources'.
> Error: java.util.concurrent.ExecutionException: java.lang.RuntimeException: No server to serve request. Check logs for details.
I am unable to run a default-loaded Android Virtual Device, I get this error message:
Emulator: Process finished with exit code -1073741511 (0xC0000139)
I am clueless how to continue. If my aims are possible to achieve, could someone tell me the Android Studio and JDK versions and settings that work 100% under 32-bit Win XP?
Thanks in advance!

Node and NPM on Chromebook (Chrome OS) - using Acer Chromebook C720P official vanilla

Hacking Acer Chromebook C720P -
using...
Node and NPM on Chromebook (Chrome OS) - very inconsistent material & literature on it - could not make it install properly so far - /thread https://yoember.com/nodejs/the-best-way-to-install-node-js/
This command to get npm working
sudo mount -i -o remount,exec /home/chronos/user
(presupposes r/w system)
The purpose - getting further capabilities without having to buy a newer Chromebook - & without having to change or hack the underlying original Chrome OS which uses Linux Kernel 3.8 -
I will be posting some of the results here - & others associated to using crouton with xiwi...
Instructions:
cd ~/Downloads
sudo mount -i -o remount,exec /home/chronos/user
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
command -v nvm
nvm list
nvm ls-remote
nvm install 10.9.0
nvm use 10.9.0
nvm alias default 10.9.0
node -v
npm install -g npm
nvm install iojs
# should get: Now using io.js v3.3.1 (npm v2.14.3)
Resources
Resources - 1. nvm by creationix -
Node Version Manager - Simple bash script to manage multiple active node.js versions
https://github.com/creationix/nvm
Resources - 2. Node.js
Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.
https://nodejs.org/en/
Resources - 3. npm
npm is the package manager for javascript
https://www.npmjs.com/
https://twitter.com/inabster/status/1029949524356333569
Resources - 4. chromeos-apk
Run Android Apps in Chrome OS or Chrome in OS X, Linux and Windows.
https://github.com/vladikoff/chromeos-apk
Crouton, xiwi, Linux, arcwelder & other resources...
In here https://forum.xda-developers.com/showpost.php?p=77252924&postcount=71
I posted how to get Skype working without Android, because Android in Chromebook Acer CB C720P does not support USB host mode, so we cannot have usb webcams from within Android.
However USB Webcam works in hacked & non hacked Chromebook with UVC.
So using crouton & a Linux distro allows to get Skype with webcam fully working, also with xiwi in a window in Chrome OS.
I tried to get Android Skype working using an apk through arcwelder with no success - versions below 5 load but redirects to install newer versions, disallow operating.
Latest version like 7 or 8 would not load through arc welder.
& I bumped onto chromeos-apk.
To use chromeos-apk to install Android apps, one needs npm, so this is how it led me to node.js -
Run Android Apps in Chrome OS OR Chrome in OS X, Linux and Windows.
https://github.com/vladikoff/chromeos-apk
with (in the downloaded chromeos-apk-master folder from above vladikoff git)
npm install chromeos-apk -g
or
sudo npm install chromeos-apk -g
& you should get something similar to this -
[email protected] ~/Downloads $ cd chromeos-apk-master
[email protected] ~/Downloads/chromeos-apk-master $ npm install chromeos-apk -g
/home/chronos/user/.nvm/versions/node/v10.8.0/bin/chromeos-apk -> /home/chronos/user/.nvm/versions/node/v10.8.0/lib/node_modules/chromeos-apk/chromeos-apk
+ [email protected]
added 13 packages from 6 contributors in 8.137s
Note - I used v10.8.0 of node.js - but v10.9.0 should work same.
Usage
Run chromeos-apk [path to apk file]
... tbc/...
chromeos-apk results
Results not encouraging - any apk I submitted so far to chromeos-apk leads to the error: (it creates an unpacked extension to load from chrome://extensions)
Failed to load extension
File
~/Downloads/org.xbmc.kodi.android
Error
There is no "message" element for key extName.
Could not load manifest.
waste of time?
I guess, I learnt how to install node.js & npm
Result - news -
It depends on the apk version, for instance
Es File Explorer version es-file-explorer-4-1-7-1-28.apk installs OK using either Arc Welder or chromeos-apk...
latest versions do not -
(also tested on Asus Chromebit CS10 which is Arm 32bit)
this is a battle of wits between Google developers, & independent developers - Google sabotages community efforts for obvious reasons, stay in control.

Custom iMX8 board with Android 10, how to develop with C++ a I2C background service?

I have a specific client request where there is a custom carried board which is controlled by a iMX8 SOM. On this board there is installed the Android system because there are specific Android applications (Java and Kotlin) which need to be run. I need to create a background service which controls specific IO peripherals (I2C, GPIOs, UART, etc...).
I suppose that in order to make a background (using the board IO peripherals) service which runs at the start of the Android OS system is to develop a C/C++ application (CMake based project) which will be cross compiled using a toolchain for the iMX8 and will be started at system boot through the "init.rc" script, right? Have you any available guide/material for such purpose so that I can begin with the best-practice solution?
I already tried using Android NDK, but I have "permission denied" errors also when installing the app in the "system/priv-app" folder (with the correct permissions).
Which is the correct way to approach this kind of project? Thank you.

Categories

Resources