我使用jni创建了一个Android项目.现在我想使用预处理器宏来区分lite和完整版本.它应该如下所示:
#ifdef LITE
auto label = LabelTTF::create("Hello Cocos2dx Lite", "Arial", 24);
#else
auto label = LabelTTF::create("Hello Cocos2dx Full", "Arial", 24);
#endif
Run Code Online (Sandbox Code Playgroud)
为此,我在Android.mk中的APP_CPPFLAGS中定义了一个变量,如下所示:
APP_CPPFLAGS += -DLITE
Run Code Online (Sandbox Code Playgroud)
不幸的是,应用程序完全忽略它,我仍然看到标签"Hello Cocos2dx Full".但是,当我将它放在Application.mk中时,同一行也可以工作.
java-native-interface android preprocessor makefile android-ndk
我正在使用示例camera2谷歌并运作良好.
但是如何用按钮在后面和前面之间切换相机?
private void setUpCameraOutputs(int width, int height) {
Activity activity = getActivity();
CameraManager manager = (CameraManager) activity.getSystemService(Context.CAMERA_SERVICE);
try {
for (String cameraId : manager.getCameraIdList()) {
CameraCharacteristics characteristics
= manager.getCameraCharacteristics(cameraId);
// We don't use a front facing camera in this sample. Para trocar, colocar != no lugar de ==.
if (characteristics.get(CameraCharacteristics.LENS_FACING)
== CameraCharacteristics.LENS_FACING_FRONT) {
continue;
}
StreamConfigurationMap map = characteristics.get(
CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP);
// For still image captures, we use the largest available size.
Size largest = Collections.max(
Arrays.asList(map.getOutputSizes(ImageFormat.JPEG)),
new CompareSizesByArea());
mImageReader …Run Code Online (Sandbox Code Playgroud) 这是完整的代码,当我尝试android jni示例时,我得到has unexpected e_machine,完整的步骤是:
$ /media/roroco/disk750/adr/android-ndk-r10e/ndk-buil并得到以下输出
Process: com.mamlambo.sample.ndk1, PID: 5560
java.lang.UnsatisfiedLinkError: dlopen failed: "/data/app/com.mamlambo.sample.ndk1-1/lib/arm/libndk1.so" has unexpected e_machine: 40
at java.lang.Runtime.loadLibrary(Runtime.java:371)
at java.lang.System.loadLibrary(System.java:988)
at com.mamlambo.sample.ndk1.AndroidNDK1SampleActivity.<clinit>(AndroidNDK1SampleActivity.java:35)
at java.lang.reflect.Constructor.newInstance(Native Method)
at java.lang.Class.newInstance(Class.java:1606)
Run Code Online (Sandbox Code Playgroud) 当我使用 ndk-build 编译时,它显示一条错误消息:
警告:格式 '%zd' 需要类型为 'signed size_t' 的参数,但参数 5 的类型为 'ssize_t'。
我以为ssize_t是一样的signed size_t,我错了吗?
我安装了Android SDK/ADT捆绑包,Eclipse正在运行.首先奇怪的是,当我点击"检查更新"时,它说没有可用的.虽然当我点击"安装新软件"并选择内置的android dl站点时,可以获得ADT的更新,这比安装的稍微新一些.无论如何,这不是我的问题..所以,我勾选可用的更新,并尝试安装它.几分钟的进度后,我收到以下错误消息:
[Problem Occurred] 'Installing Software' has encountered a problem. An error occurred while collecting items to be installed -----(I click 'Details' and this is what is shown): session context was:(profile=profile, phase=org.eclipse.equinox.internal.p2.engine.phases.Collect, operand=, action=).
No repository found containing:osgi.bundle,com.android.ide.eclipse.adt,22.6.3.v201404151837-1123206
No repository found containing: osgi.bundle,com.android.ide.eclipse.adt.package,22.6.3.v201404151837-1123206
No repository found containing:osgi.bundle,com.android.ide.eclipse.base,22.6.3.v201404151837-1123206
No repository found containing:osgi.bundle,com.android.ide.eclipse.ddms,22.6.3.v201404151837-1123206
No repository found containing:osgi.bundle,com.android.ide.eclipse.gldebugger,22.6.3.v201404151837-1123206
No repository found containing:osgi.bundle,com.android.ide.eclipse.hierarchyviewer,22.6.3.v201404151837-1123206
No repository found containing:osgi.bundle,com.android.ide.eclipse.ndk,22.6.3.v201404151837-1123206
No repository found containing:osgi.bundle,com.android.ide.eclipse.traceview,22.6.3.v201404151837-1123206
No repository found containing: osgi.bundle,overlay.com.android.ide.eclipse.adt.overlay,22.6.3.v201404151837-1123206
No repository found containing: org.eclipse.update.feature,com.android.ide.eclipse.adt,22.6.3.v201404151837-1123206 …Run Code Online (Sandbox Code Playgroud) 在使用android NDK编译c ++代码时,我收到以下错误:
/System/Library/android-ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/darwin-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/lib/libsupc++.a(eh_exception.o): In function `~exception':
/tmp/ndk/src/build/../gcc/gcc-4.4.3/libstdc++-v3/libsupc++/eh_exception.cc:31: multiple definition of `std::exception::~exception()'
/Users/user/Documents/copperworkspace/Pinecone/obj/local/armeabi/libstlport_static.a(dll_main.o):/tmp/ndk-toolchain/ndk-prebuilt-31319/sources/cxx-stl/stlport/src/dll_main.cpp:65: first defined here
/System/Library/android-ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/darwin-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/lib/libsupc++.a(eh_exception.o): In function `~exception':
/tmp/ndk/src/build/../gcc/gcc-4.4.3/libstdc++-v3/libsupc++/eh_exception.cc:31: multiple definition of `std::exception::~exception()'
/Users/user/Documents/copperworkspace/Pinecone/obj/local/armeabi/libstlport_static.a(dll_main.o):/tmp/ndk-toolchain/ndk-prebuilt-31319/sources/cxx-stl/stlport/src/dll_main.cpp:65: first defined here
/System/Library/android-ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/darwin-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/lib/libsupc++.a(eh_exception.o): In function `~bad_exception':
/tmp/ndk/src/build/../gcc/gcc-4.4.3/libstdc++-v3/libsupc++/eh_exception.cc:33: multiple definition of `std::bad_exception::~bad_exception()'
/Users/user/Documents/copperworkspace/Pinecone/obj/local/armeabi/libstlport_static.a(dll_main.o):/tmp/ndk-toolchain/ndk-prebuilt-31319/sources/cxx-stl/stlport/src/dll_main.cpp:67: first defined here
/System/Library/android-ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/darwin-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/lib/libsupc++.a(eh_exception.o):(.data.rel.ro._ZTVSt13bad_exception+0x0): multiple definition of `vtable for std::bad_exception'
/Users/user/Documents/copperworkspace/Pinecone/obj/local/armeabi/libstlport_static.a(dll_main.o):(.data.rel.ro+0xf0): first defined here
/System/Library/android-ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/darwin-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/lib/libsupc++.a(eh_exception.o): In function `~bad_exception':
/tmp/ndk/src/build/../gcc/gcc-4.4.3/libstdc++-v3/libsupc++/eh_exception.cc:33: multiple definition of `std::bad_exception::~bad_exception()'
/Users/user/Documents/copperworkspace/Pinecone/obj/local/armeabi/libstlport_static.a(dll_main.o):/tmp/ndk-toolchain/ndk-prebuilt-31319/sources/cxx-stl/stlport/src/dll_main.cpp:67: first defined here
/System/Library/android-ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/darwin-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/lib/libsupc++.a(eh_exception.o): In function `std::exception::what() const':
/tmp/ndk/src/build/../gcc/gcc-4.4.3/libstdc++-v3/libsupc++/eh_exception.cc:46: multiple definition of `std::exception::what() const'
/Users/user/Documents/copperworkspace/Pinecone/obj/local/armeabi/libstlport_static.a(dll_main.o):/tmp/ndk-toolchain/ndk-prebuilt-31319/sources/cxx-stl/stlport/src/dll_main.cpp:68: first defined …Run Code Online (Sandbox Code Playgroud) 我在OSX中的Eclipse中使用Java和本机JNI C++代码混合使用NDK r8b的android项目.我希望能够在std命名空间中使用常规C++类(map,string).
在Android.mk文件中添加了以下内容:
APP_STL:= stlport_shared
在这里我也尝试过静态库.请参阅http://docs.huihoo.com/android/ndk/r5/CPLUSPLUS-SUPPORT.html
STLPORT_FORCE_REBUILD:= true
还尝试删除强制构建.
在C/C++路径和变量中:
$ {} NDKROOT /来源/ CXX-STL/stlport的/ stlport的
"map"和"string"标题包含在.cpp文件中.我可以使用std :: string和std :: map.助理接过他们.搜索定义(eclipse中的F3)时,会显示头文件,即已解决.此外,大纲显示"字符串"和"地图"标题文件,当双击它们时,它也会将标题放在最前面.
但是,构建不会提取它们.我得到以下内容:
> ndk-build
> Gdbserver : [arm-linux-androideabi-4.6] libs/armeabi/gdbserver
> Gdbsetup : libs/armeabi/gdb.setup
> Gdbserver : [arm-linux-androideabi-4.6] libs/armeabi-v7a/gdbserver
> Gdbsetup : libs/armeabi-v7a/gdb.setup
> Compile++ arm : ImageTargets <= ImageTargets.cpp
> xxx/Project/Code/MyImageTarget/jni/ImageTargets.cpp:20:18: fatal error: string: No such file > or directory
> compilation terminated.
> make: *** [xxx/Project/Code/MyImageTarget/obj/local/armeabi/objs-> debug/ImageTargets/ImageTargets.o] Error 1
Run Code Online (Sandbox Code Playgroud)
有谁知道还有什么可以尝试.
我正在开发一个演示,我必须检查设备是否有前置摄像头,如果设备有前置摄像头,那么我必须打开它来捕获图像.
我搜索了很多,但没有找到任何解决方案.请给我一个解决方案帮助我.
提前致谢.
我正在尝试获取函数的输入(objectName)并使该值创建变量.因此,如果objectName ="abcd",我希望创建变量为abcd.有没有办法在JavaScript中做到这一点?
我正在尝试使用相机将图像上传到 firebase。但是,我得到的图像质量太低(不可读)。我编写了以下代码(没有编译错误)。但是,无法理解为什么它无法生成可读的图像。
我尝试改变 bitmap.compress 的质量参数,但图像质量保持不变。但相同的压缩代码适用于来自图库的图像。
uploadPp.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AlertDialog.Builder builder;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
builder = new AlertDialog.Builder(infoPp.this, android.R.style.Theme_Material_Dialog_NoActionBar_MinWidth);
} else {
builder = new AlertDialog.Builder(infoPp.this);
}
builder.setTitle("Picture Source")
.setMessage("Select source of picture")
.setPositiveButton("Camera", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE_CNIC);
}
}
})
.setNegativeButton("Gallery", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Intent intent = …Run Code Online (Sandbox Code Playgroud) 我在JavaScript中指定引号文字时遇到问题.如何创建一个与以下内容等效的字符串?
<li><a onclick="goSomePlace('SomeName')">SomeName</a></li>
Run Code Online (Sandbox Code Playgroud) android ×5
android-ndk ×5
camera ×2
javascript ×2
adt ×1
eclipse ×1
makefile ×1
native ×1
preprocessor ×1
rotation ×1
string ×1
var ×1
variables ×1