我的Android應用程序有一個NDK庫。當消防OS 4.5.5運行它在的Kindle Fire HD,應用程序失敗,因爲一些C標準庫符號即它們似乎是完全缺失的是沒有解決加載NDK庫:在Kindle Fire上加載NDK庫時缺少c標準庫符號
rand()
srand()
signal()
此問題不會對我的Nexus 5與普通的Android發生6
有誰ķ現在爲什麼這些符號完全缺失,並且如果有這樣一個缺失符號的官方列表?
是否有任何其他「主要」Android與這些非傳統的C標準庫在那裏?
更新:我在使用Android Studio 1.5.1和Gradle experimental plugin 0.4.0編譯應用程序和NDK庫。
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
}
}
UPDATE:的解決方案是因爲它原來是minSdkVersion.apiLevel
不影響NDK設置這個在搖籃配置:
android.ndk {
platformVersion = "18"
}
我將Gradle配置添加到我的問題中:我針對'android-18'。 – Pol
所以我想知道如果問題是,即使我在Gradle配置中將目標API設置爲18,這種方式不會傳遞給NDK構建? – Pol
我在這裏問了一個單獨的問題:http://stackoverflow.com/questions/34532233/how-do-you-view-the-raw-gradle-build-log-for-the-ndk-in-android-studio。 – Pol