我正在使用Android ndk-r8e,我在构建项目时遇到了问题.我收到上述错误消息.我检查了我的AndroidManifest.xml并将minSdkVersion设置为15,这就是我想要的.根据错误信息,APP_PLATFORM设置为android-14,它更小,不大于minSdkVersion,为什么我得到错误?
谢谢.
我正在开发一个使用NDK功能的Android应用.我的应用程序定义android:minSdkVersion
,并android:targetSdkVersion
在AndroidManifest.xml
和APP_PLATFORM
在JNI/Application.mk.
我目前的理解是android:minSdkVersion
decalres支持的最小操作系统版本,android:targetSdkVersion
声明要链接的Java库版本,并APP_PLATFORM
声明要链接的C++库.
两个问题:
我的理解是否正确?
是否APP_PLATFORM
更好android:minSdkVersion
呢?或者他们必须彼此平等?
我的问题的原因:我希望我的应用程序可用于API> = 10的设备,但我需要使用在NDK AMotionEvent_getAxisValue
中的platforms\android-13
文件夹中定义的NDK函数(如).所以我用android:minSdkVersion=10
和APP_PLATFORM=13
.项目编译成功,但是它可以在API 10-12设备上运行吗?
所以,我有点困惑,我想我理解的意思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 Studio 1.5.1和Gradle实验插件0.4.0构建一个带有NDK库的应用程序.
即使Gradle配置设置为(with minSdkVersion.apiLevel = 18
),似乎NDK库仍然编译为android-21
:
compileOptions.with {
sourceCompatibility=JavaVersion.VERSION_1_7
targetCompatibility=JavaVersion.VERSION_1_7
}
android {
compileSdkVersion = 23
buildToolsVersion = "23.0.2"
defaultConfig.with {
applicationId = "net.pol_online.hyper"
minSdkVersion.apiLevel = 18 // Android 4.3 Jelly Bean
targetSdkVersion.apiLevel = 23 // Android 6.0 Marshmallow
}
}
Run Code Online (Sandbox Code Playgroud)
是不是因为APP_PLATFORM
基于min SDK版本的Gradle NDK支持不会自动设置?如果是这样你怎么解决这个问题?