Building Panda on Android

Ah alright thanks. I’ll be trying that shortly

It gives me this error when trying to use.

Error type 3
Error: Activity class {org.panda3d.sdk/org.panda3d.android.PythonActivity} does not exist.

Did the build run to completion, and produce an .apk? Was the .apk installed using the Package Installer? Does Panda show up in the installed apps list in Android?

Is the command to install the .apk in the original .sh file you sent me?

Yes, it copies the generated .apk file to the /sdcard directory and then opens that with xdg-open to launch it with the Package Installer. However, it will not run if the makepanda process did not complete successfully. Is there an .apk file inside the source directory?

It did complete properly

So, is there an .apk in the source directory? Does calling xdg-open /sdcard/panda3d.apk do anything?

Perhaps xdg-open is not installed? It might be that you need to install the termux-tools or termux-api package.

Running that command sometimes opens up some window for like half a second then it closes. But it does not add it to the list

Hmm, interesting. Maybe you need to go to your Settings and enable installing apps from Unknown Sources.

Also, make sure that it actually exists in the file manager, using ls /sdcard, which should list the panda3d.apk.

If it does exist, you could also try opening a file manager program and navigating to the external storage, and opening panda3d.apk from there.

If all else fails, you may need to enable developer mode in your device, install adb.exe on your computer and read out the logs of the device using adb logcat to find out why it won’t open the package installer.

The unknown sources option seems to have disappeared on my S8 after the oreo update.

I’m stupid. I could have just installed it via file manager

Disregard that. I got it working

Hello, ive tried building panda using termux as you said. Followed every instruction, tho i get an error message: “could not find the python library in thirdparty/android-libs-arm/python”.

I do not have a thirdparty/android-libs-arm directory. If you do, please try renaming it to something else. Makepanda should be able to find the version of Python from the termux repository just fine, as long as you installed the python-dev package via apt install.

It also appears that libcrypt-dev is needed, which I previously failed to mention.

Are you building the latest version of the source from GitHub?

No i downloaded the 1.9.4 sdk from the website. It seems to me that termux cant run the makepanda.py line in buildpanda.sh tho i have installed everything you mentioned.

You cannot use the 1.9.4 SDK from the website. You must use the development version of Panda3D acquired from GitHub.

To download the Git repository easily in termux, you can use this command:

apt install git
git checkout https://github.com/panda3d/panda3d.git
cd panda3d

Okay i cloned the repository from github. Now when i run buildpanda.sh it says: “Android architecture must be arm, armv7a, aarch64, mips, mips64, x86 or x86_64”.

Interesting. Could you share what device you have? Could you also share the results of this command when run in termux:

python -c 'import platform; print(platform.machine())'

I have a samsung galaxy j3. armv71 is the result

Sorry for the late reply.

I can fix makepanda to recognise armv71, but it is kind of surprising that it is returning that at all because the Samsung Galaxy J3 seems to have a Snapdragon 410, which has a 64-bit ARMv8 processor.

Could you give the output of the following commands?

uname -a
getprop ro.product.cpu.abi
getprop ro.product.cpu.abi2