004android初級篇之a(chǎn)ndroidStudio ndk開發(fā)環(huán)境

android studio中編譯C/C++源代碼

1. 配置ndk.dir

在 local.properties 添加如下配置:

sdk.dir=path_of_android-sdk
ndk.dir=path_of_android-ndk

android studio中有對ndk環(huán)境的設(shè)置:

【File】->[Project Struct]->Android NDK Location

在如上位置設(shè)置ndk的安裝位置。

2.Gradle配置NDK模塊

參考如下:
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"

    defaultConfig {
        applicationId "com.frank.smart.smarthome"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        ndk {
            moduleName "SmartSocket"
            ldLibs "log", "z", "m"
            abiFilters "armeabi", "armeabi-v7a", "x86"
        }
    }

ndk還可以配置更多選項(xiàng)蕊梧,如下:

ndk {  
  moduleName "myEpicGameCode"
  cFlags "-DANDROID_NDK -D_DEBUG DNULL=0"   // Define some macros
  ldLibs "EGL", "GLESv3", "dl", "log"       // Link with these libraries!
  stl "stlport_shared"                      // Use shared stlport library
}

3.添加C/C++源代碼

默認(rèn)情況下算行,你需要把C/C++源代碼放在 [module]/src/main/jni/ 路徑下掉盅。效果如下圖所示:
當(dāng)然,你也可以自定義源代碼路徑:

android {

  // .. android settings ..

  sourceSets.main {
      jni.srcDirs 'src/main/source'
  }
}

4.分平臺配置編譯(可選)

這一步不是必須的繁涂,你可以根據(jù)需要帅戒,對各個平臺進(jìn)行不同的編譯配置昙读,可以設(shè)置覆蓋前面的編譯選項(xiàng)(例如 cFlags )乌逐。例如你只想編譯指定平臺的.so竭讳,而不是所有的平臺。如下:

android {
  // .. android settings ..
  productFlavors {
    x86 {
      ndk {
        abiFilter "x86"
      }
    }
    arm {
      ndk {
        abiFilter "armeabi-v7a"
      }
    }
    mips {
      ndk {
        abiFilter "mips"
      }
    }
  }
} // android

5. 一個編譯錯誤的解決

android studio 根據(jù)Gradle配置自動生成Android.mk 位于app\build\intermediates\ndk\debug下
如果只有c/cpp文件黔帕,直接這樣編譯的話代咸,會報錯蹈丸,這應(yīng)該是android studio 在這種情況自動生成Android.mk 時的一個bug成黄,見編譯錯誤。

Error:Execution failed for task ':nativeactivity:compileDebugNdk'.

com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'D:\android-ndk-r10\ndk-build.cmd'' finished with non-zero exit value 2

解決方法:

   在jni文件下建一個空的empty.c文件 編譯運(yùn)行即可

如果還運(yùn)行不了逻杖,在當(dāng)前model的build.gradle下添加

android{

   …………
    sourceSets.main {
        jni.srcDirs = []
    }
}    

參考鏈接

  1. Android Studio中NDK開發(fā)
  2. NDK錯誤 org.gradle.process.internal.ExecException: Process 'command with non-zero exit value 2
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末奋岁,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子荸百,更是在濱河造成了極大的恐慌闻伶,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件够话,死亡現(xiàn)場離奇詭異蓝翰,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)女嘲,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進(jìn)店門畜份,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人欣尼,你說我怎么就攤上這事爆雹。” “怎么了愕鼓?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵钙态,是天一觀的道長。 經(jīng)常有香客問我菇晃,道長册倒,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任磺送,我火速辦了婚禮驻子,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘册着。我一直安慰自己拴孤,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布甲捏。 她就那樣靜靜地躺著演熟,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上芒粹,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天兄纺,我揣著相機(jī)與錄音,去河邊找鬼化漆。 笑死估脆,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的座云。 我是一名探鬼主播疙赠,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼朦拖!你這毒婦竟也來了圃阳?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤璧帝,失蹤者是張志新(化名)和其女友劉穎捍岳,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體睬隶,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡锣夹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了苏潜。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片银萍。...
    茶點(diǎn)故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖窖贤,靈堂內(nèi)的尸體忽然破棺而出砖顷,到底是詐尸還是另有隱情,我是刑警寧澤赃梧,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布滤蝠,位于F島的核電站,受9級特大地震影響授嘀,放射性物質(zhì)發(fā)生泄漏物咳。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一蹄皱、第九天 我趴在偏房一處隱蔽的房頂上張望览闰。 院中可真熱鬧,春花似錦巷折、人聲如沸压鉴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽油吭。三九已至击蹲,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間婉宰,已是汗流浹背歌豺。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留心包,地道東北人类咧。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像蟹腾,于是被迫代替她去往敵國和親痕惋。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評論 2 345

推薦閱讀更多精彩內(nèi)容