在使用cygwin编译我的cocos2d-x项目时,我收到以下警告.
`/cygdrive/e/project/MyGame/proj.android `
/cygdrive/e/android-ndk-r8e/build/core/add-application.mk:128: Android NDK: WARNING:APP_PLATFORM android-9 is larger than android:minSdkVersion 8 in ./AndroidManifest.xml
Run Code Online (Sandbox Code Playgroud)
我使用的是NDK版r8e.我的AndroidManifest.xml中的最小SDK版本是8,但我没有在任何地方指定APP_PLATFORM作为android-9.我该如何将其更改为8.
任何人都可以告诉我如何解决这个警告,因为我认为这可能会导致问题.
我正在尝试将PJSIP库用于我的Android应用程序.我根据本手册构建了pjsua示例应用程序:https://trac.pjsip.org/repos/wiki/Getting-Started/Android
但是,当示例应用程序启动时,异常触发器:
12-06 15:03:58.043: D/dalvikvm(628): Trying to load lib /data/data/org.pjsip.pjsua2.app/lib/libpjsua2.so 0x4129d980
12-06 15:03:58.064: W/dalvikvm(628): Exception Ljava/lang/UnsatisfiedLinkError; thrown while initializing Lorg/pjsip/pjsua2/app/MyApp;
12-06 15:03:58.064: D/AndroidRuntime(628): Shutting down VM
12-06 15:03:58.064: W/dalvikvm(628): threadid=1: thread exiting with uncaught exception (group=0x409c01f8)
12-06 15:03:58.083: E/AndroidRuntime(628): FATAL EXCEPTION: main
12-06 15:03:58.083: E/AndroidRuntime(628): java.lang.ExceptionInInitializerError
12-06 15:03:58.083: E/AndroidRuntime(628): at org.pjsip.pjsua2.app.MainActivity.onCreate(MainActivity.java:85)
12-06 15:03:58.083: E/AndroidRuntime(628): at android.app.Activity.performCreate(Activity.java:4465)
12-06 15:03:58.083: E/AndroidRuntime(628): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
12-06 15:03:58.083: E/AndroidRuntime(628): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
12-06 15:03:58.083: E/AndroidRuntime(628): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
12-06 15:03:58.083: E/AndroidRuntime(628): at android.app.ActivityThread.access$600(ActivityThread.java:123)
12-06 15:03:58.083: …Run Code Online (Sandbox Code Playgroud) 我正在使用Android ndk-r8e,我在构建项目时遇到了问题.我收到上述错误消息.我检查了我的AndroidManifest.xml并将minSdkVersion设置为15,这就是我想要的.根据错误信息,APP_PLATFORM设置为android-14,它更小,不大于minSdkVersion,为什么我得到错误?
谢谢.
所以,我有点困惑,我想我理解的意思android:minSdkVersion,android:targetSdkVersion并target在项目属性.
现在我把这些设置为:
android:minSdkVersion="7"
android:targetSdkVersion="13"
Run Code Online (Sandbox Code Playgroud)
和:
target=android-15
Run Code Online (Sandbox Code Playgroud)
在project->properties->Android->Project Build Target.
当我尝试在安装了Android 2.3.3的设备上运行此应用程序应用程序时,我看到设备名称的红叉,但应用程序运行正常.
我错过了什么?如果我正在建立反对15,它是如何在android-7上运行的?在我将AdMob集成到我的应用程序中之后,这种混淆表明它需要最低的SDK级别13.
我有以下Application.mk
APP_PLATFORM := android-9
APP_STL := gnustl_static
APP_CPPFLAGS := -frtti -fexceptions -O2 -mfpu=neon -mfloat-abi=softfp
APP_ABI := armeabi-v7a
LOCAL_ARM_NEON := true
Run Code Online (Sandbox Code Playgroud)
当运行ndk-build时,我总是收到警告:
Invalid attribute name:
package
/Users/tmanthey/Documents/android/android-ndk-r8d/build/core/add-application.mk:128: Android NDK: WARNING: APP_PLATFORM android-14 is larger than android:minSdkVersion in ./AndroidManifest.xml
Invalid attribute name:
package
Run Code Online (Sandbox Code Playgroud)
这是我的AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.evotegra.aCoDriver"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="9" android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.VIBRATE"/>
<application
android:name=".ACoDriverApp" …Run Code Online (Sandbox Code Playgroud) 我试图在我的Android项目中使用开源C库.该库使用该atof()功能.我知道这atof()是标准C库(stdlib.h)中定义的函数.因此,它应该在Android NDK(仿生库)上的标准C库中实现.
但是,当我尝试加载包含对此函数的调用的库时,我收到运行时错误:
java.lang.UnsatisfiedLinkError: Cannot load library: reloc_library[1285]: 86 cannot locate 'atof'....
Run Code Online (Sandbox Code Playgroud)
我是使用NDK进行Android开发的初学者,所以也许我只是错过了标志,编译器指令等等.
我的android.mk档案是:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_ALLOW_UNDEFINED_SYMBOLS := true
LS_CPP=$(subst $(1)/,,$(wildcard $(1)/$(2)/*.c))
LOCAL_MODULE := libA
LOCAL_SHARED_LIBRARIES := \
libgmodule-2.0 \
libgobject-2.0 \
libgthread-2.0 \
libglib-2.0
LOCAL_SRC_FILES:= sourceFile.c
include $(BUILD_SHARED_LIBRARY
Run Code Online (Sandbox Code Playgroud) 最近我升级了NDK,现在我的应用程序因缺少符号而崩溃mkfifo:
E/dalvikvm(2031): dlopen("/data/app-lib/...mylib.so") failed: Cannot load library: soinfo_relocate(linker.cpp:975): cannot locate symbol "mkfifo" referenced by "mylib.so"...
Run Code Online (Sandbox Code Playgroud)
较旧的平台mkfifo是内联定义的 sys/stat.h
static __inline__ int mkfifo(const char *__p, mode_t __m) {
return mknod(__p, (__m & ~S_IFMT) | S_IFIFO, (dev_t)0);
}
Run Code Online (Sandbox Code Playgroud)
但是在平台版本21中,它被改为仅仅是一个外部的decleration:
extern int mkfifo(const char*, mode_t);
Run Code Online (Sandbox Code Playgroud)
这就解释了缺失的符号异常...我的问题是如何解决它?
我正在尝试使用android-ndk-r15c链接到为 android 构建的 FFmpeg。我通过下载最新的ffmpeg-3.3.4 FFmpeg 源代码来构建它。
以下是我的链接器列表:
-lavformat -lavcodec -lswscale -lavutil -lavfilter -lswresample -lavdevice -lpostproc
Run Code Online (Sandbox Code Playgroud)
我收到以下错误抱怨
libavformat/hls.c:783: error: undefined reference to 'atof'
libavcodec/ffv1enc.c:146: error: undefined reference to 'log2'
libavcodec/imc.c:428: error: undefined reference to 'log2f'
Run Code Online (Sandbox Code Playgroud)
以下是我的 FFmpeg 相关包括:
#include <stdint.h>
#include <cstdlib>
#define __STDC_CONSTANT_MACROS
extern "C" {
#include "libavcodec/avcodec.h"
#include "libavformat/avformat.h"
#include "libavutil/mathematics.h"
#include "libavcodec/version.h"
#include "libavutil/rational.h"
#include "libavutil/avstring.h"
#include "libswscale/swscale.h"
}
Run Code Online (Sandbox Code Playgroud)
以下是我为 android 交叉编译 FFmpeg 的构建脚本:
#!/bin/bash
cd ffmpeg-3.3.4
NDK=/path/to/ndk/android-ndk-r15c
SYSROOT=$NDK/platforms/android-21/arch-arm/ …Run Code Online (Sandbox Code Playgroud) 当使用 CMake 为 Android 构建时,CMAKE_SYSTEM_VERSION 对应于最低 api 级别还是目标 api 级别?