Pleco in Anbox

Wan

榜眼
Has anyone tried installing Pleco in Anbox yet? I installed Anbox in Archlinux without a problem using the AUR package anbox-git.
After loading the necessary kernel modules and starting the systemd services, I checked for hardware compatibility:
Bash:
$ sudo modprobe binder_linux
$ sudo modprobe ashmem_linux
$ sudo systemctl start anbox-container-manager.service
$ systemctl --user start anbox-session-manager.service
$ anbox check-features
  Your computer does meet all requirements to run Anbox
Starting the emulation also works flawlessly:
Bash:
$ anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity
launches an Android 7.1.1 emulation in a window. All the pre-installed standard apps seem to work. I didn’t try anything that requires network functionality, as the bridge is supposedly buggy or not working at all.
On the matter of which apps should work, the official statement is:
As we provide a complete Android system generally all applications are supposed to work. However there are a few exceptions:
  • If your application depends on particular hardware functionality like WiFi, Bluetooth or telephony, we need additional work to bridge those over from the host system. As of right now the only thing you can do is to ensure your application behaves correct when these functionalities are not available.
  • Anbox uses the freeform mode introduced with Android 7 which allows a multi-window system. Your applications needs to play well within the freeform mode to work well in Anbox. You can find more details in the Android Developer Documentation.
Currently, the only way to install apps into this system is to use the Android Debug Bridge. ADB recognizes the emulated device:
Bash:
$ adb devices
  List of devices attached
  emulator-5558   device

I downloaded Plecodict from https://pleco.com/getandroid and tried to install it but got an error:
Bash:
$ adb install ./plecodroid-180703-website.apk
  adb: failed to install plecodroid-180703-website.apk: Failure [INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113]

Is that because I run Anbox on x86 Architecture?
 

Shun

状元
Hello Wan,

I think you took the right guess. Searching the all-useful Google for the "INSTALL_FAILED_NO_MATCHING_ABIS" search word yields the following post from Stack Overflow:

https://stackoverflow.com/questions/24572052/install-failed-no-matching-abis-when-install-apk

There, it states:

"INSTALL_FAILED_NO_MATCHING_ABIS is when you are trying to install an app that has native libraries and it doesn't have a native library for your cpu architecture. For example if you compiled an app for armv7 and are trying to install it on an emulator that uses the Intel architecture instead it will not work."

I think "native libraries" means compiled libraries for an architecture. Anything else is perhaps in Java bytecode. So, either you can extend Anbox with ARM emulation, or you would need another emulator?

Best Greetings,

Shun
 
  • Like
Reactions: Wan

Wan

榜眼
Yes, I had seen the question on stack overflow, and in another place, someone asked about that error in the specific context of anbox, but I wasn't sure.
I raised the issue here because I hoped that maybe Mike knows a workaround.
 

mikelove

皇帝
Staff member
Not aware of any workaround except to install an ARM emulator of some sort - we don't support X86 anymore because some of the partners that we license libraries from have stopped supporting it and so we wouldn't be able to release a fully functional version of Pleco for X86. (and in fairness, X86-on-Android is kind of in its dying throes anyway - hanging on mostly on Chromebooks, but given the spectacular benchmarks that are appearing for the A12X on the new iPad Pros I expect most of those will migrate to ARM as well in the next year or two once Mediatek/Qualcomm start releasing tablet-class chips on the latest TSMC process)
 

Wan

榜眼
I gave installing libhoudini a shot, but didn’t want to mess around too much. Couldn’t get it to work and don’t want to spend too much time on this. Oh well, ARChon it is, then...
 

boolean8

Member
Option #1: Genymotion personal edition (best performance)

What works reliably is genymotion with an Oreo ROM + ARM_Translation_Oreo.zip (google the filename to download it). Once you download the zip simply drag-and-drop it into the emulator window, accept the prompt and then reboot the emulator. It's not a lightweight solution since genymotion uses virtualbox behind the scenes but it works significantly faster than google's arm images provided with android studio.
You don't have to buy the commercial version. The free version for personal use works fine.

Option #2: Google's ARM images for Android Studio (SLOW on X64, close to native speed on ARM64 notebooks such as Apple Silicon M1/M2, Microsoft Surfice, etc)

You can also use ARM-based images provided by google with android-studio:
  1. Menu Tools > AVD Manager > Create Virtual Device > (pick a lower resolution for better performance, ie no more than 720x1280).
  2. Under Select System Image click the Other images tab and pick any image with starts with arm-xyz... Download and then Next. Select a armeabi-v7a, armeabi-v8a or ARM64-based image.
  3. Click Finish to create the emulator.
Option #3
If you have a Linux system running on ARM architecture then you also have the option of running pleco in a waydroid container.
 
Last edited:
Top