導航:首頁 > 操作系統 > androidndkr9d下載

androidndkr9d下載

發布時間:2022-05-08 19:53:17

android-ndk-r9d 32位系統能用么嗎

android-ndk-r9d 32位系統可以用。
cpu的位是指一次性可處理的數據量是多少,1位元組=8位,32位處理器可以一次性處理4個位元組的數據量,依次類推。32位操作系統針對的32位的CPU設計。64位操作系統針對的64位的CPU設計。操作系統只是硬體和應用軟體中間的一個平台。CPU從原來的8位,16位,到現在的32位和64位。

Ⅱ 如何在 Mac 下搭建 Android 編譯環境 for quick v3

### 安裝最新的 Android ADT bundle 和 Android NDK

下載 Android 所需

1. adt-bundle-mac-x86_64_20140321.zip
2. android-ndk-r9d-darwin-x86_64.tar.bz2
3. android-8.zip

* 將 adt-bundle-mac-x86_64-2013???? 目錄改名為 android
* 將 android/sdk 目錄改名為 android/android-sdk-macos
* 將 android-*.zip 解壓到 android/android-sdk-macos/platforms/
* 移動目錄 android-ndk-r? 到 android/android-ndk-r?

最終的目錄結構:

```
<PATH_TO>/android/android-ndk-r?
<PATH_TO>/android/android-sdk-macosx
<PATH_TO>/android/android-sdk-macosx/platforms/android-?
<PATH_TO>/android/eclipse

```

運行 android/android-sdk-macosx/tools/android, 可以看到 Android 2.2 已經安裝好.

### 設置環境變數

~/.bash_profile 中添加以下代碼:

```

ANDROID=/Users/mac/Documents/SDK/android
export ANDROID_NDK_ROOT=${ANDROID}/android-ndk-r9d
export ANDROID_SDK_ROOT=${ANDROID}/android-sdk-macosx
export ANDROID_HOME=${ANDROID_SDK_ROOT}

```

完畢 ~

Ⅲ 如何安裝和設置Cocos Code IDE

基本需求:

安裝JDK。Windows用戶需要選擇正確的版本,比如,你如果下載的IDE是64位版本,那麼你的JDK也需要是64位的版本。

Windows用戶安裝python
2.7。Mac OS X已經集成了python 2.7,所以可以跳過這一步。

請下載Cocos2d-x
3.2來開發Cocos2d-x Lua游戲。

請下載Cocos2d-JS
3.0-RC2來開發Cocos2d-x javaScript游戲。

注意:

Cocos Code IDE是在Cocos2d-x 3.x/Cocos2d-JS 3.x的基礎上開發的,因此,老版本的引擎(Cocos2d-x
2.x)不能在IDE上正常使用。當前版本(1.0.0-RC1)適配了最新的引擎版本(Cocos2d-x
3.2和Cocos2d-JS 3.0 RC2)並且能夠向前兼容舊的3.x版本,為了更好的使用IDE,請下載兼容的引擎版本。

引擎和所創建的工程所在的路徑都不能包含非英文字元,即路徑中不能包含中文。

附加需求:

在iOS的模擬器上調試

確定iOS模擬器已經安裝。

通過USB線來調試Android設備

確定Android
SDK已經安裝。

如果你想進行定製,你需要下面的工具:

Mac OS X/iOS: XCode 5.0 or above

Windows: VS2012

Android: Android SDK, NDK r9d
version, ANT

通過Code IDE來開發已經存在的游戲

如果你的游戲使用Cocos2d-x 3.x或者Cocos2d-JS 3.x,你可以很輕易的使用Code IDE。你只需要:

通過 IDE 創建一個對應的 Cocos Lua/JavaScript 示例工程

用項目資源(腳本、圖片等)替換掉示例工程中的資源

Ⅳ 怎樣解壓android-ndk-r9d-linux-x86

滑鼠右擊解壓

Ⅳ window7 中安裝安卓的NDK 最後配置完有這個問題,怎麼解決 啊 NDK path cannot contain space!

意思是NDK的路徑不能有空格。你把NDK文件夾的路徑上的文件夾名全改成沒空格的就行了。
P.S 這也太麻煩了,也許後續版本中會有改善吧!

Ⅵ 如何定位Android NDK開發中遇到的錯誤

NDK編譯生成的.so文件作為程序的一部分,在運行發生異常時同樣會造成程序崩潰。不同於Java代碼異常造成的程序崩潰,在NDK的異常發生時,程序在Android設備上都會立即退出,即通常所說的閃退,而不會彈出「程序xxx無響應,是否立即關閉」之類的提示框。

NDK是使用C/C++來進行開發的,熟悉C/C++的程序員都知道,指針和內存管理是最重要也是最容易出問題的地方,稍有不慎就會遇到諸如內存無效訪問、無效對象、內存泄露、堆棧溢出等常見的問題,最後都是同一個結果:程序崩潰。例如我們常說的空指針錯誤,就是當一個內存指針被置為空(NULL)之後再次對其進行訪問;另外一個經常出現的錯誤是,在程序的某個位置釋放了某個內存空間,而後在程序的其他位置試圖訪問該內存地址,這就會產生一個無效地址錯誤。常見的錯誤類型如下:

初始化錯誤

訪問錯誤

數組索引訪問越界

指針對象訪問越界

訪問空指針對象

訪問無效指針對象

迭代器訪問越界

內存泄露

參數錯誤

堆棧溢出

類型轉換錯誤

數字除0錯誤

利用Android NDK開發本地應用的時候,幾乎所有的程序員都遇到過程序崩潰的問題,但它的崩潰會在logcat中列印一堆看起來類似天書的堆棧信息,讓人舉足無措。單靠添加一行行的列印信息來定位錯誤代碼做在的行數,無疑是一件令人崩潰的事情。在網上搜索「Android NDK崩潰」,可以搜索到很多文章來介紹如何通過Android提供的工具來查找和定位NDK的錯誤,但大都晦澀難懂。下面以一個實際的例子來說明,首先生成一個錯誤,然後演示如何通過兩種不同的方法,來定位錯誤的函數名和代碼行。

首先,看我們在hello-jni程序的代碼中做了什麼(有關如何創建或導入工程,此處略),看下圖:在JNI_OnLoad()的函數中,即so載入時,調用willCrash()函數,而在willCrash()函數中,std::string的這種賦值方法會產生一個空指針錯誤。這樣,在hello-jni程序載入時就會閃退。我們記一下這兩個行數:在61行調用了willCrash()函數;在69行發生了崩潰。

下面來看看發生崩潰(閃退)時系統列印的logcat日誌:

[plain] view plain

************************************************

Buildfingerprint:'vivo/bbk89_cmcc_jb2/bbk89_cmcc_jb2:4.2.1/JOP40D/1372668680:user/test-keys'

pid:32607,tid:32607,name:xample.hellojni>>>com.example.hellojni<<<

signal11(SIGSEGV),code1(SEGV_MAPERR),faultaddr00000000

backtrace:

#00pc00023438/system/lib/libc.so

#01pc00004de8/data/app-lib/com.example.hellojni-2/libhello-jni.so

#02pc000056c8/data/app-lib/com.example.hellojni-2/libhello-jni.so

#03pc00004fb4/data/app-lib/com.example.hellojni-2/libhello-jni.so

#04pc00004f58/data/app-lib/com.example.hellojni-2/libhello-jni.so

#05pc000505b9/system/lib/libdvm.so

#06pc00068005/system/lib/libdvm.so

#07pc000278a0/system/lib/libdvm.so

#08pc0002b7fc/system/lib/libdvm.so

#09pc00060fe1/system/lib/libdvm.so

#10pc0006100b/system/lib/libdvm.so

#11pc0006c6eb/system/lib/libdvm.so

#12pc00067a1f/system/lib/libdvm.so

#13pc000278a0/system/lib/libdvm.so

#14pc0002b7fc/system/lib/libdvm.so

#15pc00061307/system/lib/libdvm.so

#16pc0006912d/system/lib/libdvm.so

#17pc000278a0/system/lib/libdvm.so

#18pc0002b7fc/system/lib/libdvm.so

#19pc00060fe1/system/lib/libdvm.so

#20pc00049ff9/system/lib/libdvm.so

#21pc0004d419/system/lib/libandroid_runtime.so

#22pc0004e1bd/system/lib/libandroid_runtime.so

#23pc00001d37/system/bin/app_process

#24pc0001bd98/system/lib/libc.so

#25pc00001904/system/bin/app_process

stack:

beb12340012153f8

beb1234400054290

beb1234800000035

beb1234cbeb123c0[stack]

……

如果你看過logcat列印的NDK錯誤時的日誌就會知道,我省略了後面很多的內容,很多人看到這么多密密麻麻的日誌就已經頭暈腦脹了,即使是很多資深的Android開發者,在面對NDK日誌時也大都默默的選擇了無視。

「符號化」NDK錯誤信息的方法

其實,只要你細心的查看,再配合Google提供的工具,完全可以快速的准確定位出錯的代碼位置,這個工作我們稱之為「符號化」。需要注意的是,如果要對NDK錯誤進行符號化的工作,需要保留編譯過程中產生的包含符號表的so文件,這些文件一般保存在$PROJECT_PATH/obj/local/目錄下。

第一種方法:ndk-stack

這個命令行工具包含在NDK工具的安裝目錄,和ndk-build和其他一些常用的NDK命令放在一起,比如在我的電腦上,其位置是/android-ndk-r9d/ndk-stack。根據Google官方文檔,NDK從r6版本開始提供ndk-stack命令,如果你用的之前的版本,建議還是盡快升級至最新的版本。使用ndk –stack命令也有兩種方式

使用ndk-stack實時分析日誌

在運行程序的同時,使用adb獲取logcat日誌,並通過管道符輸出給ndk-stack,同時需要指定包含符號表的so文件位置;如果你的程序包含了多種CPU架構,在這里需求根據錯誤發生時的手機CPU類型,選擇不同的CPU架構目錄,如:

[plain] view plain

adbshelllogcat|ndk-stack-sym$PROJECT_PATH/obj/local/armeabi


當崩潰發生時,會得到如下的信息:

[plain] view plain

**********Crashmp:**********

Buildfingerprint:'vivo/bbk89_cmcc_jb2/bbk89_cmcc_jb2:4.2.1/JOP40D/1372668680:user/test-keys'

pid:32607,tid:32607,name:xample.hellojni>>>com.example.hellojni<<<

signal11(SIGSEGV),code1(SEGV_MAPERR),faultaddr00000000

Stackframe#00pc00023438/system/lib/libc.so(strlen+72)

Stackframe#01pc00004de8/data/app-lib/com.example.hellojni-2/libhello-jni.so(std::char_traits<char>::length(charconst*)+20):Routinestd::char_traits<char>::length(charconst*)at/android-ndk-r9d/sources/cxx-stl/stlport/stlport/stl/char_traits.h:229

Stackframe#02pc000056c8/data/app-lib/com.example.hellojni-2/libhello-jni.so(std::basic_string<char,std::char_traits<char>,std::allocator<char>>::basic_string(charconst*,std::allocator<char>const&)+44):Routinebasic_stringat/android-ndk-r9d/sources/cxx-stl/stlport/stlport/stl/_string.c:639

Stackframe#03pc00004fb4/data/app-lib/com.example.hellojni-2/libhello-jni.so(willCrash()+68):RoutinewillCrash()at/home/testin/hello-jni/jni/hello-jni.cpp:69

Stackframe#04pc00004f58/data/app-lib/com.example.hellojni-2/libhello-jni.so(JNI_OnLoad+20):RoutineJNI_OnLoadat/home/testin/hello-jni/jni/hello-jni.cpp:61

Stackframe#05pc000505b9/system/lib/libdvm.so(dvmLoadNativeCode(charconst*,Object*,char**)+516)

Stackframe#06pc00068005/system/lib/libdvm.so

Stackframe#07pc000278a0/system/lib/libdvm.so

Stackframe#08pc0002b7fc/system/lib/libdvm.so(dvmInterpret(Thread*,Methodconst*,JValue*)+180)

Stackframe#09pc00060fe1/system/lib/libdvm.so(dvmCallMethodV(Thread*,Methodconst*,Object*,bool,JValue*,std::__va_list)+272)

……(後面略)

我們重點看一下#03和#04,這兩行都是在我們自己生成的libhello-jni.so中的報錯信息,那麼會發現如下關鍵信息:

[plain] view plain

#03(willCrash()+68):RoutinewillCrash()at/home/testin/hello-jni/jni/hello-jni.cpp:69

#04(JNI_OnLoad+20):RoutineJNI_OnLoadat/home/testin/hello-jni/jni/hello-jni.cpp:61


回想一下我們的代碼,在JNI_OnLoad()函數中(第61行),我們調用了willCrash()函數;在willCrash()函數中(第69行),我們製造了一個錯誤。這些信息都被准確無誤的提取了出來!是不是非常簡單?

先獲取日誌,再使用ndk-stack分析

這種方法其實和上面的方法沒有什麼大的區別,僅僅是logcat日誌獲取的方式不同。可以在程序運行的過程中將logcat日誌保存到一個文件,甚至可以在崩潰發生時,快速的將logcat日誌保存起來,然後再進行分析,比上面的方法稍微靈活一點,而且日誌可以留待以後繼續分析。

[plain] view plain

adbshelllogcat>1.log

ndk-stack-sym$PROJECT_PATH/obj/local/armeabi–mp1.log

第二種方法:使用addr2line和objmp命令

這個方法適用於那些,不滿足於上述ndk-stack的簡單用法,而喜歡刨根問底的程序員們,這兩個方法可以揭示ndk-stack命令的工作原理是什麼,盡管用起來稍微麻煩一點,但是可以滿足一下程序員的好奇心。

先簡單說一下這兩個命令,在絕大部分的linux發行版本中都能找到他們,如果你的操作系統是linux,而你測試手機使用的是Intel x86系列,那麼你使用系統中自帶的命令就可以了。然而,如果僅僅是這樣,那麼絕大多數人要絕望了,因為恰恰大部分開發者使用的是Windows,而手機很有可能是armeabi系列。

別急,在NDK中自帶了適用於各個操作系統和CPU架構的工具鏈,其中就包含了這兩個命令,只不過名字稍有變化,你可以在NDK目錄的toolchains目錄下找到他們。以我的Mac電腦為例,如果我要找的是適用於armeabi架構的工具,那麼他們分別為arm-linux-androideabi-addr2line和arm-linux-androideabi-objmp;位置在下面目錄中,後續介紹中將省略此位置:

[plain] view plain

/Developer/android_sdk/android-ndk-r9d/toolchains/arm-linux-androideabi-4.8/prebuilt/darwin-x86_64/bin/

假設你的電腦是windows,CPU架構為mips,那麼你要的工具可能包含在這個目錄中:

[plain] view plain

D:android-ndk-r9d oolchainsmipsel-linux-android-4.8prebuiltwindows-x86_64in

Ⅶ eclipse怎麼搭建cocos2dx

前提: 已經安裝了eclipse,可以正常開發 android應用
環境:windows
工具:1.已經集成了adt的eclipse,可以開發android應用。沒有的,可以下載。下載地址:developer.android.com/sdk/index.html 具體的環境搭建請自行網路
該eclipse下載解壓,無需在額外安裝adt插件即可以開發android應用。
2. android ndk
3. cocos2d-x 使用的是穩定版本為v2.2.2 下載地址: cocos2d-x.org/download/version#Cocos2d-x

搭建步驟:(前提已經安裝了eclipse,並且可以成功開發android應用)
1.為eclipse安裝cdt插件。下載cdt壓縮包:eclipse.org/cdt/downloads.php 下載完成後
打開eclipse,一次點擊》help》》 install new softwear》》Add
彈出如下對話框

Name 隨便取個名字:我的叫 cdt,點擊Archive 找到剛下載的cdt壓縮包後,點擊ok 進入下面界面:
勾選第一個,一直next後重啟eclipse即可。

2.配置ndk,用來編譯c++文件。http://developer.android.com/tools/sdk/ndk/index.html
我使用版本為r9。下載後,解壓縮到相應位置,我的位置是 D:\ndk\android-ndk-r9d
然後,打開eclipse》》window》》preference》》android》》ndk 加入ndk的所在路徑

然後點擊ok。

3.下載cocos2d-x包,我下載的是v2.2.2版本。 http://www.cocos2d-x.org/download/version#Cocos2d-x
下載好後,解壓到相應的位置。我的在:D:\cocos2d

4.導入庫文件:打開eclipse》》file》》import》》
出現如下對話框,點開android,點擊existing。。。。

然後點擊下面的next,到下一個對話框,點擊 對話框 上browse後,選擇剛解壓出來的cocos2d文件,導入
cocos2d-x-2.2.2\cocos2dx\platform\android\java
根據自己解壓後的位置,選擇導入即可
導入後,在eclipse裡面可以看見導入的lib庫文件》》 libcocos2dx

5.導入例子程序。 導入項目和4一樣,只是導入的文件不一樣,它的位置是
D:\cocos2d\cocos2d-x-2.2.2\samples\Cpp\SimpleGame D:\cocos2d為我自己創建保存解壓文件的地方
請不要勾選 project,及不要把項目拷到eclipse裡面,會有問題。
如果項目有錯,可能沒有找到相應的庫文件,請一次點擊項目》》右鍵,最下面一項》》android》》右下方點擊add》》彈出框中,選擇上面導入的庫文件 libcocos2dx,點擊ok

6.配置builder。 右鍵點擊剛導入的項目 》》properties(最下面項)》》在出現的對話框中,左邊,點擊Builders》》把右邊 cdt builder 前面的勾去掉,如 下圖

然後,點擊 new》》program》》OK,進入下圖

點擊 location 下面》》Browse file system 按鈕》》 選取剛才ndk安裝的路徑位置 D:\ndk\android-ndk-r9d\ndk-build.cmd (這個是我的位置,請根據自己的放置位置,選擇進去)
點擊 working directory 下面 Browse workplace 》》選擇剛導入的項目
最後如圖:

然後點擊ok完成

7.配置 .mk文件
點擊導入的項目,點擊jni》》 雙擊,打開Application.mk 文件,在裡面添加,如下代碼:
NDK_MODULE_PATH := D:\cocos2d\cocos2d-x-2.2.2\cocos2dx\platform\third_party\android\prebuilt;D:\cocos2d\cocos2d-x-2.2
保存(注意這里是我cocos2d的放置路徑,請填寫你自己的路徑,是2句話,中間用分號隔開的)
我的cocos2d解壓後是放在 d盤的 cocos2d文件夾裡面的

8.加入項目需要的資源
從文件夾——D:\cocos2d\cocos2d-x-2.2.2\samples\Cpp\SimpleGame\Resources\hd
裡面拷貝 裡面的圖片到項目的 assets裡面

Ⅷ 如何解決android NDK開發中的NDK

1,首先,來看看在hello-jni程序的代碼中做了什麼(有關如何創建或導入工程,此處略),下面代碼中:在JNI_OnLoad()的函數中,即so載入時,調用willCrash()函數,而在willCrash()函數中,std::string的這種賦值方法會產生一個空指針錯誤。這樣,在hello-jni程序載入時就會閃退。記一下這兩個行數:在61行調用了willCrash()函數;在69行發生了崩潰2看看發生崩潰(閃退)時系統列印的logcat日誌:、只要細心的查看,再配合Google提供的工具,完全可以快速地准確定位出錯的代碼位置,這個工作我們稱之為「符號化」。需要注意的是,如果要對NDK錯誤進行符號化的工作,需要保留編譯過程中產生的包含符號表的so文件,這些文件一般保存在$PROJECT_PATH/obj/local/目錄下。3方法:ndk-stack這個命令行工具包含在NDK工具的安裝目錄,和ndk-build及其他常用的一些NDK命令放在一起,比如在我的電腦上,其位置是/android-ndk-r9d/ndk-stack。根據Google官方文檔,NDK從r6版本開始提供ndk-stack命令,如果你用的之前的版本,建議還是盡快升級至最新的版本。使用ndk–stack命令也有兩種方式實時分析日誌在運行程序的同時,使用adb獲取logcat日誌,並通過管道符輸出給ndk-stack,同時需要指定包含符號表的so文件位置;如果你的程序包含了多種CPU架構,在這里需求根據錯誤發生時的手機CPU類型,選擇不同的CPU架構目錄,如:當崩潰發生時,會得到如下的信息:重點看一下#03和#04,這兩行都是在我們自己生成的libhello-jni.so中的報錯信息,因此會發現如下關鍵信息:回想一下之前代碼,在JNI_OnLoad()函數中(第61行),調用了willCrash()函數;在willCrash()函數中(第69行),製造了一個錯誤。4先獲取日誌再分析這種方法其實和上面的方法沒有什麼大的區別,僅僅是logcat日誌獲取的方式不同。可以在程序運行的過程中將logcat日誌保存到一個文件,甚至可以在崩潰發生時,快速的將logcat日誌保存起來,然後再進行分析,比上面的方法稍微靈活一點,而且日誌可以留待以後繼續分析。

Ⅸ 用android ndk r9d 中ndk-builder編ffmpeg的有沒有哪位大神提供

1、ndk-builder 寫法有問題,應該是 ndk-build 吧;
2、ndk 編譯的第三方庫或者源碼的問題,可以到 ndk 貼吧去反應,
http://tieba..com/f?kw=ndk
3、希望獲取或者下載ffmpeg源碼的話,可以到
http://sourceforge.net/projects/ffmpeg/?source=directory 去下載;
希望可以對你有用,謝謝

閱讀全文

與androidndkr9d下載相關的資料

熱點內容
伺服器之間的負載均衡如何實現 瀏覽:204
多媒體伺服器執行什麼定額子目 瀏覽:216
php獲取手機標識 瀏覽:906
點擊錄制按鈕是什麼app 瀏覽:890
證據提取命令視頻 瀏覽:353
java的學習心得 瀏覽:96
prof命令 瀏覽:279
手機加密文件密碼怎麼解開 瀏覽:283
賈躍亭程序員完整視頻 瀏覽:958
怎樣把兩個文件夾打包發送 瀏覽:378
單片機教程資料 瀏覽:982
仿大眾點評系統源碼python 瀏覽:426
手機網路伺服器連接不上是怎麼回事 瀏覽:155
電腦為什麼一直要解壓 瀏覽:530
淘客優惠券網站源碼 瀏覽:555
word轉成pdf在線 瀏覽:775
手機暴力解壓教程 瀏覽:130
解壓小視頻第二期 瀏覽:364
裝機自帶軟體找不到軟體文件夾 瀏覽:330
仙境之路伺服器地址ip 瀏覽:708