相关疑难解决方法(0)

Android NDK:警告:APP_PLATFORM android-9比android:minSdkVersion 8大

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

任何人都可以告诉我如何解决这个警告,因为我认为这可能会导致问题.

android cygwin android-ndk cocos2d-x

40
推荐指数
2
解决办法
3万
查看次数

无法加载库:reloc_library [1285]:找不到'rand'

我正在尝试将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 pjsip android-ndk

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

警告:APP_PLATFORM android-14比/home/user/MyApp/AndroidManifest.xml中的android:minSdkVersion大

我正在使用Android ndk-r8e,我在构建项目时遇到了问题.我收到上述错误消息.我检查了我的AndroidManifest.xml并将minSdkVersion设置为15,这就是我想要的.根据错误信息,APP_PLATFORM设置为android-14,它更小,不大于minSdkVersion,为什么我得到错误?

谢谢.

android-ndk

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

android:minSdkVersion,android:targetSdkVersion和"target"之间的关系

所以,我有点困惑,我想我理解的意思android:minSdkVersion,android:targetSdkVersiontarget在项目属性.

现在我把这些设置为:

    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.

android

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

如何摆脱NDK编译器警告:"APP_PLATFORM更大.."和"无效包"

我有以下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-ndk

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

Android ndk找不到atof功能

我试图在我的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)

android android-ndk

9
推荐指数
2
解决办法
8944
查看次数

如何使用Android的NDK使用mkfifo

最近我升级了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 android-ndk

8
推荐指数
2
解决办法
9354
查看次数

Android FFmpeg:对 atof、log2 和 log2f 的未定义引用

我正在尝试使用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)

c++ android ffmpeg atof android-ndk

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

对于 Android 来说 CMAKE_SYSTEM_VERSION 是指最低 api 级别还是目标 api 级别?

当使用 CMake 为 Android 构建时,CMAKE_SYSTEM_VERSION 对应于最低 api 级别还是目标 api 级别?

android cmake android-ndk

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

标签 统计

android-ndk ×8

android ×7

atof ×1

c++ ×1

cmake ×1

cocos2d-x ×1

cygwin ×1

ffmpeg ×1

pjsip ×1