小编Ale*_*ohn的帖子

Android.mk中的预处理器宏被忽略,但在Application.mk中有效

我使用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中时,同一行也可以工作.

  • 这是为什么?
  • 如何定义变量,以便我可以为完整版和精简版提供两个不同的makefile?

java-native-interface android preprocessor makefile android-ndk

3
推荐指数
1
解决办法
1737
查看次数

在后置和前置摄像头之间切换

我正在使用示例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)

camera android rotation android-camera

3
推荐指数
1
解决办法
2674
查看次数

genymotion ARM翻译:".../lib/arm/libndk.so"有意想不到的e_machine:40

这是完整的代码,当我尝试android jni示例时,我得到has unexpected e_machine,完整的步骤是:

  • $ /media/roroco/disk750/adr/android-ndk-r10e/ndk-buil
  • 在项目中,新的Android应用程序,并运行它

并得到以下输出

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)

android-ndk android-emulator

3
推荐指数
1
解决办法
6467
查看次数

'signed size_t' 与 'ssize_t' 不同吗?

当我使用 ndk-build 编译时,它显示一条错误消息:

警告:格式 '%zd' 需要类型为 'signed size_t' 的参数,但参数 5 的类型为 'ssize_t'。

我以为ssize_t是一样的signed size_t,我错了吗?

android android-ndk

2
推荐指数
1
解决办法
1495
查看次数

"没有找到存储库" - 通过Eclipse更新Android ADT

我安装了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)

eclipse android adt

2
推荐指数
1
解决办法
5554
查看次数

android NDK:编译错误:libstdc ++:`std :: bad_exception ::〜bad_exception()'的多重定义

在使用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)

android-ndk

1
推荐指数
1
解决办法
7627
查看次数

NDK - 具有本机(JNI)C++代码构建问题的Android Java

我在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)

有谁知道还有什么可以尝试.

java-native-interface native android-ndk

1
推荐指数
1
解决办法
3034
查看次数

前脸摄像头安卓.

我正在开发一个演示,我必须检查设备是否有前置摄像头,如果设备有前置摄像头,那么我必须打开它来捕获图像.

我搜索了很多,但没有找到任何解决方案.请给我一个解决方案帮助我.

提前致谢.

camera android android-camera

1
推荐指数
1
解决办法
1万
查看次数

尝试获取变量的值并使其成为另一个变量的名称.JavaScript的

我正在尝试获取函数的输入(objectName)并使该值创建变量.因此,如果objectName ="abcd",我希望创建变量为abcd.有没有办法在JavaScript中做到这一点?

javascript string variables var

0
推荐指数
1
解决办法
39
查看次数

从相机意图接收低质量图像

我正在尝试使用相机将图像上传到 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)

android-camera-intent

0
推荐指数
1
解决办法
3915
查看次数

JavaScript中的字符串连接与引号文字

我在JavaScript中指定引号文字时遇到问题.如何创建一个与以下内容等效的字符串?

<li><a onclick="goSomePlace('SomeName')">SomeName</a></li>
Run Code Online (Sandbox Code Playgroud)

javascript string-concatenation

-1
推荐指数
1
解决办法
151
查看次数