uname -a
Linux localhost 3.10.65-9236909 #2 SMP PREEMPT Thu Dec 7 17:41:18 KST 2017 armv7l Android
getprop ro.product.cpu.abi
armeabi-v7a
getprop ro.product.cpu.abi2
armeabi
Just to be absolutely clear, platform.machine()
returned armv71
and not armv7l
?
Either way, Iâve checked in a change that should handle your case in makepanda. Just cd to the panda3d directory and type git pull
to get the latest changes.
~~^
fatal error: too many errors emitted, stopping now
[-ferror-limit=]
20 errors generated.
I get a total of 20 errors so it doesnt compile.
Could you include the error messages you get from the compiler?
cstdlib:155:9: error: no member named âat_quick_exitâ in the global namespace
And a bunch of these. All of them are the same namespace issue with different member names.
Sorry i forgot to mention that this seems to be a problem caused by my termux and not panda3d. The full path line was too long.
error: /data/data/com.termux/files/usr/bin/âŠ/include/c++/v1/cstdlib:155:9:
no member named âat_quick_exitâ in the global namespace
error: no member named âat_quick_exitâ in the global
namespace using ::at_quick_exit;
~~^ using ::at_quick_exit;
~~^
error: error:
no member named âquick_exitâ in the global namespace
no member named âquick_exitâ in the global namespace
using ::quick_exit; ~~^
using ::quick_exit; ~~^
error: no member named âiswblankâ in the global
namespace; did you mean âisblankâ?
using ::iswblank;
~~^
error:
no member named âiswblankâ in the global
namespace; did you mean âisblankâ?
using ::iswblank;
error: no member named âvfwscanfâ in the global
namespace using ::vfwscanf;
error:
no member named âvfwscanfâ in the global namespace
/data/data/com.termux/files/usr/bin/âŠ/include/c++/v1/cwchar:128:9: error: using ::vfwscanf;
~~^
no member named âvswscanfâ in the global namespace
using ::vswscanf; ~~^
error: no /data/data/com.termux/files/usr/bin/âŠ/include/c++/v1/cwchar:138:9: error:
no member named âwcstofâ in the global
namespace
member named âvswscanfâ in the global
namespace
using ::wcstof;
~~^
using ::vswscanf;
error:
no member named âiswblankâ in the global
namespace; did you mean âisblankâ?
return ::iswblank©;
~~^
/data/data/com.termux/files/usr/include/ctype.h:66:5: note:
âisblankâ declared here int isblank(int __ch);
^ /data/data/com.termux/files/usr/bin/âŠ/include/c++/v1/__locale:60:7: error: use of undeclared identifier âuselocaleâ
uselocale(_old_loc); ^
error: use of undeclared identifier âuselocaleâ
âŠ__loc) : _old_loc(uselocale(__loc)) {} ^
/data/data/com.termux/files/usr/bin/âŠ/include/c++/v1/__locale:60:7: error:
use of undeclared identifier âuselocaleâ uselocale(_old_loc);
^
error:
no member named âiswblankâ in the global
namespace; did you mean âisblankâ?
return ::iswblank©;
~~^
/data/data/com.termux/files/usr/include/ctype.h:66:5: note:
âisblankâ declared here int isblank(int __ch);
^ /data/data/com.termux/files/usr/bin/âŠ/include/c++/v1/__locale:60:7: error: use of undeclared identifier âuselocaleâ
uselocale(_old_loc); ^
error:
use of undeclared identifier âwcsnrtombsâ
return wcsnrtombs(__dest, __src, __nwcâŠ
^
/data/data/com.termux/files/usr/bin/âŠ/include/c++/v1/__bsd_locale_fallbacks.h:64:12: error:
use of undeclared identifier âmbsnrtowcsâ return mbsnrtowcs(__dest, __src, __nmsâŠ
^
error: use of undeclared identifier âwcsnrtombsâ
return wcsnrtombs(__dest, __src, __nwc⊠^
/data/data/com.termux/files/usr/bin/âŠ/include/c++/v1/__bsd_locale_fallbacks.h:64:12: error:
use of undeclared identifier âmbsnrtowcsâ return mbsnrtowcs(__dest, __src, __nmsâŠ
^
error:
use of undeclared identifier âstrtoll_lâ; did
you mean âstrtol_lâ?
long long __ll = strtoll_l(a, &âŠ
^
error:
use of undeclared identifier âstrtoull_lâ; did you mean âstrtol_lâ?
unsigned long long _ll = strtoullâŠ
error:
use of undeclared identifier âstrtoll_lâ; did
you mean âstrtol_lâ?
/data/data/com.termux/files/usr/bin/âŠ/include/c++/v1/locale:819:12: error:
use of undeclared identifier âstrtold_lâ; long long __ll = strtoll_l(a, &âŠ
^
error:
use of undeclared identifier âstrtoull_lâ;
did you mean âstrtol_lâ?
unsigned long long _ll = strtoullâŠ
error: use of undeclared identifier âstrtold_lâ; did
you mean âstrtod_lâ?
return strtold_l(__a, __p2, _LIBCPP_GETâŠ
^
error:
no member named âlog2fâ in the global namespace
âŠ__lcpp_x) NOEXCEPT {return ::log2f(âŠ
~~^
/data/data/com.termux/files/usr/include/c++/v1/math.h:1303:93: error: no member named âlog2lâ in the global
namespace
âŠdouble __lcpp_x) _NOEXCEPT {return ::log2l(⊠~~^
fatal error: too many errors emitted, stopping now
[-ferror-limit=] 20 errors generated.
I found it hard copying large text in termux but here we go.
This looks like an issue with the Android NDK. Please ensure you have the latest versions of this installed with apt update
and apt upgrade
. It may also prove fruitful to Google these error messages to see if others have reported errors similar to these.
Note: it may help to explicitly pass --target android-21
in makepanda (instead of just --target android
) if you are running into these errors.
How do i install android ndk in termux?
pkg install ndk-stl ndk-sysroot
Passing android-21 worked the errors dont come up anymore. The build terminates at 7% tho. This is what i get:
[ 7%] Building Interrogate database built/pandac/input/libp3dtoolbase.in
/data/data/com.termux/files/usr/bin/sh: 1: built/bin/interrogate: Permission denied
Storing dependency cache. Elapsed Time: 15 sec
The following command returned a non-zero value: built/bin/interrogate -srcdir dtool/src/dtoolbase -Idtool/src/dtoolbase -DCPPPARSER -D__STDC__=1 -D__cplusplus=201103L -D__attribute__(x)= -D__i386__ -D__ANDROID__ -oc built/tmp/libp3dtoolbase_igate.cxx -od built/pandac/input/libp3dtoolbase.in -fnames -string -refcount -assert -python-native -Sbuilt/include/parser-inc -Idtool/src/dtoolbase -Sbuilt/tmp -Sbuilt/include -S/data/data/com.termux/files/usr/include/python3.6m -DANDROID= -module panda3d.core -library libp3dtoolbase p3dtoolbase_composite1.cxx p3dtoolbase_composite2.cxx typeH
andle.h typeHandle_ext.h typeRegistry.h typedObject.h neverFreeMemory.h Build terminated.
build.sh: 4: build.sh: --threads: not found
Sorry, discourse failed to notify me of replies to this thread.
The second error indicates that there is something wrong with your build.sh
script. Probably there is a newline somewhere where it shouldnât be, probably before the --threads
argument. I would suggest deleting the built
directory with rm -rf built
to see if the first error will go away. If you still get the first error, try calling chmod +x built/bin/interrogate
and re-run makepanda to see if that helps.
Hi, I wanted to try to build (using the latest commit 1a94e65) on my nexus 5 android with these features (from makepanda.py
output):
- Version: 1.10.0
- Using Python 3.6
- Target OS: android (API level 21)
- Target arch: armv7a
and after several attempts I came to this script (slightly modified than the original):
#!/bin/sh
export LD_LIBRARY_PATH=/system/lib:$LD_LIBRARY_PATH
rm -f panda3d.apk
export CXXFLAGS='-I/data/data/com.termux/files/usr/include -I/data/data/com.termux/files/usr/include/harfbuzz'
CXXFLAGS="$CXXFLAGS" makepanda/makepanda.py --everything --target android-21 --installer --threads 4 $@
if [ -f panda3d.apk ]; then
cp panda3d.apk /sdcard/panda3d.apk
xdg-open /sdcard/panda3d.apk
fi
and it works up to a certain point where it gives me this error
...
java.lang.NoClassDefFoundError: org.eclipse.jdt.internal.compiler.batch.-$$Lambda$ClasspathLocation$GQimjP-835AJ59yLyUnQopLF5GE
at org.eclipse.jdt.internal.compiler.batch.ClasspathLocation.getModuleNames(ClasspathLocation.java:129)
at org.eclipse.jdt.internal.compiler.batch.FileSystem.initializeModuleLocations(FileSystem.java:222)
at org.eclipse.jdt.internal.compiler.batch.FileSystem.<init>(FileSystem.java:212)
at org.eclipse.jdt.internal.compiler.batch.Main.getLibraryAccess(Main.java:3447)
at org.eclipse.jdt.internal.compiler.batch.Main.performCompilation(Main.java:4631)
at org.eclipse.jdt.internal.compiler.batch.Main.compile(Main.java:1771)
at org.eclipse.jdt.internal.compiler.batch.Main.main(Main.java:1479)
The following command returned a non-zero value: ecj -cp built/classes -d built/classes panda/src/android/NativeIStream.java
Storing dependency cache.
Elapsed Time: 2 min 0 sec
Build process aborting.
Build terminated.
Iâm absolutely not expert in the java build environment and, after some research, I tried to insert into the script:
export CLASSPATH=/data/data/com.termux/files/usr/share/java/android.jar:$CLASSPATH
but without success.
This looks like a problem with your ecj build. There seems to be an issue report about it here:
It looks like the solution suggested at the end of the thread is this:
apt install ecj4.6
This solved the problem, now the build is successful!
After using the instructions on the deploy-ng branch which are:
pkg install python-dev termux-tools ndk-stl ndk-sysroot clang libvorbis-dev libopus-dev opusfile-dev openal-soft-dev freetype-dev harfbuzz-dev libpng-dev ecj4.6 dx patchelf aapt apksigner libcrypt-dev
python makepanda/makepanda.py --everything --target android-21 --installer
xdg-open panda3d.apk
I had to use these:
pkg install libunwind
LD_LIBRARY_PATH=/system/lib64:$PREFIX/lib python makepanda/makepanda.py --everything --target android-21 --installer xdg-open panda3d.apk
This was to get passed the errors mention here https://github.com/termux/termux-packages/issues/2416
05-10 14:17:55.382 27559 27559 F libc : CANNOT LINK EXECUTABLE "crash_dump32": cannot locate symbol "XzUnpacker_Construct" referenced by "/system/lib/libunwind.so"...
05-10 14:17:55.382 27559 27559 F libc : Fatal signal 6 (SIGABRT), code 0 in tid 27559 (crash_dump32), pid 27559 (crash_dump32)
$ apt install libunwind
05-10 14:24:01.966 30508 30508 F libc : CANNOT LINK EXECUTABLE "crash_dump32": cannot locate symbol "_UPT_accessors" referenced by "/system/lib/libbacktrace.so"...
05-10 14:24:01.966 30508 30508 F libc : Fatal signal 6 (SIGABRT), code 0 in tid 30508 (crash_dump32), pid 30508 (crash_dump32)
Hi all.
I dont get a build error.
I can install the apk.
As a result get two new icons on the desktop: Panda Viewer and Panda Python.
I can start Panda Viewer. It shows the test triangle and the message âno animationâ.
I canât start Panda Python. This one closes immediately after start.
I canât start any Python scripts with run_python.sh. I tried am start ⊠but didnât work neither.
In all cases, there is a short flash (may be the start of Panda Python) and thatâs it. If I had opened Panda Viewer before, it closes as well wenn I use run_python.sh
My test script is:
from direct.showbase.ShowBase import ShowBase
class MyApp(ShowBase):
def init(self):
ShowBase.init(self)
app = MyApp()
Do you have any idea?
I am working on an Huawei M5 Mediapad with Android 8.
What error messages do you get when you use run_python.sh
? Are you passing it a Python script that is on the SD card (ie. in the /sdcard
directory)?
You should be able to use logcat (enable USB or network debugging and use adb logcat
) to get the error messages from Panda3D.