02/11/2014, 我重灌電腦, 再度安裝 andriod 開發環境, 發現 andriod 官網已經把下述之 Eclipse IDE 跟 SDK (step 7~21) 整合成一個 adt-bundle 了, 下載該包後, 解壓縮到硬碟任何地方即可以. (但前提 JRE 還是要先裝), 我沒有再新建專案, 去測試剩餘的步驟的有無差異.
以下我這一次的過程簡要...
1. 下載 JRE 的最後一版 (官網), 安裝.
2. 下載 andriod SDK (ADT Bundle) (官網), 解壓縮至 C: 為 C:\adt-bundle
3. 下載 andriod NDK (官網), 解壓縮至 C: 為 C:\android-ndk (*)
4. 把之前的備份的 Cygwin 解壓縮至 C: 為 C:\cygwin (**)
5. 執行 C:\adt-bundle\SDK Manager.exe 更新預設的 packages 至最新 (含安裝 Google USB driver)
6. 執行 C:\adt-bundle\eclipse\eclipse.exe, 指定新的 workspace 到 D:\my_workspace
7. 匯入老專案, File -> Import... -> Android / Exist Android Code Into Workspace -> Browse 至 andriod project setting (project.properties?) 的 root 目錄
9. Build.... (***)
P.S.
(*) 此為我專案預設 ndk 的路徑
(**) 1. 先前已經把上次安裝的 Cygwin 備份了, 這東西是可攜式的. 因為只用到 bash, make etc沒特別要求最新版. 並透過 Cygwin setup 也能再更新安裝過的 packages.
2. 此為我專案預設 cygwin 的路徑.
(***) 因為我之前的 NDK Builder 的設定已在專案下一直保留著(.externalToolBuilders\NDK_Builder.launch) 了, 所以這次沒再設置 NDK Builder!
2014年2月12日 星期三
2014年1月9日 星期四
Type R 錯誤?
Android 開發環境並不太完善, 所以常遇到怪問題....
"Type R cannot be resolved to a variable"
乍看之下這是什麼鬼阿, 一旦發生就會發生在幾百個 java 行裡!
可以查一下 StackOverflow, 我自己久久也會遇到一次, 有時太久了, 遇到反而熊熊不知道怎麼辦, 記錄一下...
關於 StackOverflow 該篇討論網友的描述, 有蠻多的見解, 以我的案例只有一個, 如下述
檢查
例如, 剛剛我發現我在 res/drawables-mdpi 多了一個 xxx.psd 我編輯用的圖檔, 忘記這裡面不能亂放檔案(儘管專案本身沒用到), 但專案編譯過程會"一一"掃瞄裡面的全部文件, 砍掉後就正常了.
好希望 eclipse 是報告類似 "The res/drawables-mdpi/xxx.psd can't be identified!" arrrr~
"Type R cannot be resolved to a variable"
乍看之下這是什麼鬼阿, 一旦發生就會發生在幾百個 java 行裡!
可以查一下 StackOverflow, 我自己久久也會遇到一次, 有時太久了, 遇到反而熊熊不知道怎麼辦, 記錄一下...
關於 StackOverflow 該篇討論網友的描述, 有蠻多的見解, 以我的案例只有一個, 如下述
檢查
/res 目錄, 是不是有檔案錯誤, 通常是有新增的文件錯誤(名字不合規定, 格式錯誤, 多餘)或誤刪老文件導致 layout (XML) 失去對文件的參用等等, 所以無法產生出 R.java class (資源檔?), 以致於後續編譯 java 只要參用 res 的地方就會出現(一堆) "Type R" 錯誤.例如, 剛剛我發現我在 res/drawables-mdpi 多了一個 xxx.psd 我編輯用的圖檔, 忘記這裡面不能亂放檔案(儘管專案本身沒用到), 但專案編譯過程會"一一"掃瞄裡面的全部文件, 砍掉後就正常了.
好希望 eclipse 是報告類似 "The res/drawables-mdpi/xxx.psd can't be identified!" arrrr~
2013年12月26日 星期四
錯誤! 請再猜一次!
本篇是關於
1. 轉移 Google Play App 軟體到另外一個 Google 帳號
2. 申請 Google Wallet 商家資料
很早我就付了 US$25 的規費給 Google 所以可以在 Google Play 上架, 去年公司想要轉移一款客製的 Android 軟體至 Google Play 上公開下載, 我就用了我的個人帳號操作, 在 Developer Console 發行版本多次後, 熊熊才發現, App 是綁住我的帳號的, Google 的機制是全部(Google XX)都綁一個帳號互通資料, 所以該軟體準備做 Paid In App 機制, 也用我的 Google Wallet 裡面的資料做收付款!
Google Play Developer Console 上面並沒有看到任何轉移帳號的操作. 除了商家資料綁住我, 或是我離職了那怎麼辦?
想說有點麻煩了, 如果我重用新的 gmail 帳號來做, 此發行一年多的 App 是有唯一 ID 的, 另外帳號是無法使用同個 ID, 所以會變的多個 App 發行!
難道最後我的 gmail 帳號要送給公司, 早知道就不要自告奮勇...
前禮拜在 Google Play Developer Console 下方的 "說明中心", 竟然發現了 Google Play 有轉移 App 至另外一個帳號的機制
Changing your sign-in address or account
所需要的是兩個 Developer 帳號付款的交易單號 Transaction ID, 這可以在各自的 Google Wallet (電子錢包) 裡面交易記錄找到, 然後在上面的網址填申請書. 此不多述, 我填好了欄位需要的資料, 指定 "ALL" 把我的帳號裡頭全部 App 轉移至新的帳號, 送出申請, 然後等 Google 人工省核, 約半天就 Google 某客服就寄 Email 給我, 回覆說成功轉移了.
本文重點是第二段申請 "商家帳戶"(Google Wallet Merchant)....
(注意這不是 "Google Wallet" 電子錢包, 但事實又有些關連如後述)
所以我接著要替新帳號(公司名義)申請 "商家帳戶", 以便 Paid In App 收款使用, 打開申請頁面有一些資料要填寫, 填好後按 "送出"...嗶~ (其實電腦沒出聲, 是我腦袋的 FUCK 的消音)
網頁上方一條紅色訊息 "聯絡人姓名必須包含姓氏與名字,例如:王小明 UNKNOWN_VALUE", 於是無法送出申請.
意思似乎是我寫的名字有問題? 我改了英文 嗶~, 或換了常見名字 嗶~, 不填 嗶~, 於是我改了 "王小明" .....
當然, 還是 嗶~ 不行 -_- !!
怎麼會這樣!? 難道是我網頁瀏覽器支援有問題, 我下載了 Google Chrome 測試還是一樣. 我之前的帳號是有連結商家帳戶的, 但那是多年前 Google Checkout 機制時代我申請的(但此機制本身有整合問題), 後來應該是 Google 換新機制, 自行轉移過了.
我想上面的紅色訊息應該是無解了, 查了 Google (哈~又是你), 有一封同我問題的討論但沒人回, 我想那就寫客服信吧....
但沒想到後面有意外的發展...
我檢視在新的帳號的 Google Wallet ( 電子錢包) 裡面, 我發現了舊有的付費時 (US$25 的時候, 公司另外同事付費的) 有個人資料 (在電子錢包設定可以找到), 也有一個姓名欄位 "法定全名", 名字寫錯成地址, 我不曉得他怎麼填的, 也許是用手機付費時填錯? 於是我就把他修正為公司的中文名字, 嗶~ 又來了 "法定全名無效", 還好二次我猜到了改英文不准中文!
A~ 接著我回到 "商家帳戶"(Google Wallet Merchant)申請網頁, 突發靈感, 把名字用同一個名字!
按資料送出 PASS~
以上, 兩個等同的 "錯誤! 請再猜一次!" 錯誤訊息經驗, 提供參考.
p.s. 總結一下, 目前的過關答案
1. 聯絡人姓名必須包含姓氏與名字,例如:王小明 UNKNOWN_VALUE
-->請填入電子錢包個人資料的 "法定全名"
2. 法定全名無效
-->只接受英文
1. 轉移 Google Play App 軟體到另外一個 Google 帳號
2. 申請 Google Wallet 商家資料
很早我就付了 US$25 的規費給 Google 所以可以在 Google Play 上架, 去年公司想要轉移一款客製的 Android 軟體至 Google Play 上公開下載, 我就用了我的個人帳號操作, 在 Developer Console 發行版本多次後, 熊熊才發現, App 是綁住我的帳號的, Google 的機制是全部(Google XX)都綁一個帳號互通資料, 所以該軟體準備做 Paid In App 機制, 也用我的 Google Wallet 裡面的資料做收付款!
Google Play Developer Console 上面並沒有看到任何轉移帳號的操作. 除了商家資料綁住我, 或是我離職了那怎麼辦?
想說有點麻煩了, 如果我重用新的 gmail 帳號來做, 此發行一年多的 App 是有唯一 ID 的, 另外帳號是無法使用同個 ID, 所以會變的多個 App 發行!
難道最後我的 gmail 帳號要送給公司, 早知道就不要自告奮勇...
前禮拜在 Google Play Developer Console 下方的 "說明中心", 竟然發現了 Google Play 有轉移 App 至另外一個帳號的機制
Changing your sign-in address or account
所需要的是兩個 Developer 帳號付款的交易單號 Transaction ID, 這可以在各自的 Google Wallet (電子錢包) 裡面交易記錄找到, 然後在上面的網址填申請書. 此不多述, 我填好了欄位需要的資料, 指定 "ALL" 把我的帳號裡頭全部 App 轉移至新的帳號, 送出申請, 然後等 Google 人工省核, 約半天就 Google 某客服就寄 Email 給我, 回覆說成功轉移了.
本文重點是第二段申請 "商家帳戶"(Google Wallet Merchant)....
(注意這不是 "Google Wallet" 電子錢包, 但事實又有些關連如後述)
所以我接著要替新帳號(公司名義)申請 "商家帳戶", 以便 Paid In App 收款使用, 打開申請頁面有一些資料要填寫, 填好後按 "送出"...嗶~ (其實電腦沒出聲, 是我腦袋的 FUCK 的消音)
網頁上方一條紅色訊息 "聯絡人姓名必須包含姓氏與名字,例如:王小明 UNKNOWN_VALUE", 於是無法送出申請.
意思似乎是我寫的名字有問題? 我改了英文 嗶~, 或換了常見名字 嗶~, 不填 嗶~, 於是我改了 "王小明" .....
當然, 還是 嗶~ 不行 -_- !!
怎麼會這樣!? 難道是我網頁瀏覽器支援有問題, 我下載了 Google Chrome 測試還是一樣. 我之前的帳號是有連結商家帳戶的, 但那是多年前 Google Checkout 機制時代我申請的(但此機制本身有整合問題), 後來應該是 Google 換新機制, 自行轉移過了.
我想上面的紅色訊息應該是無解了, 查了 Google (哈~又是你), 有一封同我問題的討論但沒人回, 我想那就寫客服信吧....
但沒想到後面有意外的發展...
我檢視在新的帳號的 Google Wallet ( 電子錢包) 裡面, 我發現了舊有的付費時 (US$25 的時候, 公司另外同事付費的) 有個人資料 (在電子錢包設定可以找到), 也有一個姓名欄位 "法定全名", 名字寫錯成地址, 我不曉得他怎麼填的, 也許是用手機付費時填錯? 於是我就把他修正為公司的中文名字, 嗶~ 又來了 "法定全名無效", 還好二次我猜到了改英文不准中文!
A~ 接著我回到 "商家帳戶"(Google Wallet Merchant)申請網頁, 突發靈感, 把名字用同一個名字!
按資料送出 PASS~
以上, 兩個等同的 "錯誤! 請再猜一次!" 錯誤訊息經驗, 提供參考.
p.s. 總結一下, 目前的過關答案
1. 聯絡人姓名必須包含姓氏與名字,例如:王小明 UNKNOWN_VALUE
-->請填入電子錢包個人資料的 "法定全名"
2. 法定全名無效
-->只接受英文
2013年8月18日 星期日
Android facebook 貼文的小插曲
前些日子進行的一個 Android App (別人寫好的我進行維護擴充) 連結至 Facebook 貼文分享的新功能, 照往常先拜 Google 碼頭, 猜想了關鍵字 "android facebook post to wall", 很好一堆前人分享了重點方法或提供程式片段範例, 我開始下載了 Facebook SDK, 匯入專案, 並依前人程式片段寫了自己的版本(我第一次寫 android java)...
結果試了一下在我們自己的 App 切到 Facebook 授權成功後執行貼文動作, 卻遇到下面的畫面. "無法顯示你所要求的頁面。有可能是暫時無法使用...." 的錯誤訊息..
果然沒有一帆風順, 再拜一次 google 看有人遇到類似問題否, 結果提及相同的訊息都是一般用戶在自身 Facebook 使用上的問題, 並無有用的回覆, 搜了許久無程式人員在開發上提及此問題.
再一次看看 Facebook SDK 的文件說明, 是否我有哪裡做錯, 看了一下就放棄, 目前 SDK 是 3.0 版的 API, 原本我用的方法是 2.0 版的 API, 雖可以用但教學都是 3.0 版 API 方式, 3.0 版的方式更複雜些. google 的前人分享文大都是 2.0 版 API 的方式.
不過科學精神是, 試試看官方的範例(3.0)有沒有問題, 如果正常, 那我得考慮換方式寫, 於是花了一點時間 build 官方的 hello sample...結果還是一樣!
這...因為這畫面已經是 Facebook App(or Lib) 的畫面了, 錯誤在對方裡面, 我完全沒有任何更多的資訊, 而且這東西跟手機的 Facebook 登入 cache 有關, 又移除了 Facebook 使用者資料重做授權...
反覆查資料, 踹 (try) 程式, 移除授權, 重測試...整整一天沒任何進展.
第二天 "try" 到中午, 精神感應到...
我的手機 Facebook App 版本是多少? 查一下是 2.0.5, 再查一下目前 Facebook app 發行的版本是...哇是 3.5!! 該不會是新的 SDK 與舊的 Facebook app 相容有問題!?
更新了手機的 Facebook app 版本, 再跑一次 Facebook 官方 Sample 跟我的寫的部分都沒問題了...
以上修電腦前沒先看插頭插好沒的經驗, 分享給偶遇此問題的朋友~
結果試了一下在我們自己的 App 切到 Facebook 授權成功後執行貼文動作, 卻遇到下面的畫面. "無法顯示你所要求的頁面。有可能是暫時無法使用...." 的錯誤訊息..
果然沒有一帆風順, 再拜一次 google 看有人遇到類似問題否, 結果提及相同的訊息都是一般用戶在自身 Facebook 使用上的問題, 並無有用的回覆, 搜了許久無程式人員在開發上提及此問題.
再一次看看 Facebook SDK 的文件說明, 是否我有哪裡做錯, 看了一下就放棄, 目前 SDK 是 3.0 版的 API, 原本我用的方法是 2.0 版的 API, 雖可以用但教學都是 3.0 版 API 方式, 3.0 版的方式更複雜些. google 的前人分享文大都是 2.0 版 API 的方式.
不過科學精神是, 試試看官方的範例(3.0)有沒有問題, 如果正常, 那我得考慮換方式寫, 於是花了一點時間 build 官方的 hello sample...結果還是一樣!
這...因為這畫面已經是 Facebook App(or Lib) 的畫面了, 錯誤在對方裡面, 我完全沒有任何更多的資訊, 而且這東西跟手機的 Facebook 登入 cache 有關, 又移除了 Facebook 使用者資料重做授權...
反覆查資料, 踹 (try) 程式, 移除授權, 重測試...整整一天沒任何進展.
第二天 "try" 到中午, 精神感應到...
我的手機 Facebook App 版本是多少? 查一下是 2.0.5, 再查一下目前 Facebook app 發行的版本是...哇是 3.5!! 該不會是新的 SDK 與舊的 Facebook app 相容有問題!?
更新了手機的 Facebook app 版本, 再跑一次 Facebook 官方 Sample 跟我的寫的部分都沒問題了...
以上修電腦前沒先看插頭插好沒的經驗, 分享給偶遇此問題的朋友~
2012年8月30日 星期四
用 Eclipse 每次編譯 (build) 時自動執行 bash & ndk-build 命令
這裡是之前的的紀錄 Eclipse+Android SDK/NDK 開發環境的過程 (2/2) 步驟 58~62 的附圖詳細說明, 今天 (離上次搞 andriod 有一段時間) 要弄一個別人的案子, 他沒有設置自動編譯 JNI, 對於要改 C 的我頗不方便, 我是少用 Eclipse 的人, 只想到可自動編譯阿, 但又忘了這些步驟, 而且是徹底沒印象怎麼做 :_ 還要回來找老文章 (還好我有留練習紀錄), 那...這次就將過程截圖下來吧, 並加上註解 ;-)
前提:
1. 你已經安裝好 cygwin + NDK 等環境了
2. 你已經做好手動建立 JNI 的 makefile 了 (或是拿別人的專案要改自動化NDK)
如非上述, 請忽略本文吧. 還是從我之前的 Eclipse+Android SDK/NDK 開發環境的過程 1 & 2 開始練起.
---------------------------------------------------------------------
58. (2) (用 Eclipse 每次編譯 (build) 時自動建立 libhello.so)
59. menu -> 'Project' -> 'Properties', 開啟 Properties for xx 對話盒
60. 點選 Builders 項目, 按下 'New...', 開啟 Choose configuration type
對話盒
61. 點選 Program 項目, 按下 'OK', 開啟 Edit launch configuration
properties 對話盒
Name: 隨你高興 (建議取有意義的字, 我都用 'NDK Builder')
Main 標籤頁下 (如下圖):
Location: C:\cygwin\bin\bash.exe
Working Directory: (留白)
Arguments: --login -c "/cygdrive/c/android-ndk/ndk-build -C `cygpath -u '${build_project}' `"
NOTE: 1. 以上 cygwin 及 android-ndk 路徑, 請依真實情況修改
2. 另外一種 Arguments 寫法:
--login -c "cd '${project_loc}' && /cygdrive/c/android-ndk/ndk-build"
Refresh 標籤頁下 (如下圖):
Refresh resources upon completion 打勾
選取下方的
The Entire workspace
或
Specific resources 項目
按 'Specify Resources...' 按鈕, 將專案中的 libs 目錄(*) 打勾
註: (*) 第一次建立時, 若沒有編譯 jni 過, 可能沒有 libs 目錄, 建議編譯過 jni 後改選這個.
Recursive include sub-folders 打勾
Environment 標籤頁下 (如下圖):
(留白)
Build Options 標籤頁下 (如上圖):
Allocate Console 打勾
File 不勾
Launch in background 打勾
After a "Clean" 打勾 (或不勾看你習慣)
During manual builds 打勾
During auto builds 打勾 (或不勾看你習慣)
During a "Clean" 不勾 (或勾看你習慣)
Specify working set of relevant resources 打勾
註: Eclipse help 裡說鑑於效能考量, 不建議 During auto builds 打勾, 我是覺得還好啦. 看你習不習慣 Eclipse 自動(暗自)啟動 ndk-build 囉.
按 'Specify Resources...' 按鈕, 將專案中的 jni 目錄打勾
註: 這樣子只有 jni 資源目錄下的文件有變更時才會啟動自動編譯, 或是依你需求可以加選擇其他的資源目錄. (例如把 C/C++ source files 放在另外一個目錄, 如果不選 Specify working set of relevant resources 則專案內任一資源變動都會啟動自動編譯)
設置好後, 按 'Finish' 回到上一層對話盒, 再按 'OK'
62. 此時, 你的 makefile 會依 Run the builder 的指定時機自動編譯, 或手動在選單->Project->Clean + Build Project
注意 NDK Builder 編譯的時候, Eclipse 的 Console 視窗會同手動一樣顯示 ndk-build 結果,下圖, Console 顯示 bash 執行 NDK Builder...
後記:
以上的設置 Eclipse 會放在 .externalToolBuilders 下 (NAME).launch, 我的是 NDK_Builder.launch, 這個文件可以直接編輯, 我把此文件隨著專案檔案控管, 當專案其他的成員 check out 時也能直接使用(或修改一下路徑)而不是重複以上的 NDK 環境設置.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration
..略...
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS" value="--login -c "/cygdrive/c/android-ndk/ndk-build -C `cygpath -u '${build_project}' `""/>
..略...
</launchConfiguration>
前提:
1. 你已經安裝好 cygwin + NDK 等環境了
2. 你已經做好手動建立 JNI 的 makefile 了 (或是拿別人的專案要改自動化NDK)
如非上述, 請忽略本文吧. 還是從我之前的 Eclipse+Android SDK/NDK 開發環境的過程 1 & 2 開始練起.
---------------------------------------------------------------------
58. (2) (用 Eclipse 每次編譯 (build) 時自動建立 libhello.so)
59. menu -> 'Project' -> 'Properties', 開啟 Properties for xx 對話盒
註: 如果在 Project Explorer 裡有多個專案, 請確認哪一個需要做自動執行 ndk-build, 先選好其中的一個 project, 也可以在其名字上按滑鼠右鍵彈出選單後, 選 'Properties'. 如果多個專案都需要自動執行 ndk-build, 那 "各自" 都要做下面的步驟!
60. 點選 Builders 項目, 按下 'New...', 開啟 Choose configuration type
對話盒
61. 點選 Program 項目, 按下 'OK', 開啟 Edit launch configuration
properties 對話盒
Name: 隨你高興 (建議取有意義的字, 我都用 'NDK Builder')
Main 標籤頁下 (如下圖):
Location: C:\cygwin\bin\bash.exe
Working Directory: (留白)
Arguments: --login -c "/cygdrive/c/android-ndk/ndk-build -C `cygpath -u '${build_project}' `"
NOTE: 1. 以上 cygwin 及 android-ndk 路徑, 請依真實情況修改
2. 另外一種 Arguments 寫法:
--login -c "cd '${project_loc}' && /cygdrive/c/android-ndk/ndk-build"
註: 這裡非常重要, 就是實際手動執行 bash, ndk-build 的方式在此輸入好.
Refresh 標籤頁下 (如下圖):
Refresh resources upon completion 打勾
註:告知當 ndk-build 執行完畢後, 要接著刷新專案的哪些資源, 一般我們只選因為 ndk-build 執行後所影響(變更)的文件 (如 libs...), 這樣專案其他不相關的文件不會重新又編譯一次.
選取下方的
The Entire workspace
或
Specific resources 項目
按 'Specify Resources...' 按鈕, 將專案中的 libs 目錄(*) 打勾
註: (*) 第一次建立時, 若沒有編譯 jni 過, 可能沒有 libs 目錄, 建議編譯過 jni 後改選這個.
Recursive include sub-folders 打勾
Environment 標籤頁下 (如下圖):
(留白)
Build Options 標籤頁下 (如上圖):
Allocate Console 打勾
File 不勾
Launch in background 打勾
After a "Clean" 打勾 (或不勾看你習慣)
During manual builds 打勾
During auto builds 打勾 (或不勾看你習慣)
During a "Clean" 不勾 (或勾看你習慣)
Specify working set of relevant resources 打勾
註: Eclipse help 裡說鑑於效能考量, 不建議 During auto builds 打勾, 我是覺得還好啦. 看你習不習慣 Eclipse 自動(暗自)啟動 ndk-build 囉.
按 'Specify Resources...' 按鈕, 將專案中的 jni 目錄打勾
註: 這樣子只有 jni 資源目錄下的文件有變更時才會啟動自動編譯, 或是依你需求可以加選擇其他的資源目錄. (例如把 C/C++ source files 放在另外一個目錄, 如果不選 Specify working set of relevant resources 則專案內任一資源變動都會啟動自動編譯)
設置好後, 按 'Finish' 回到上一層對話盒, 再按 'OK'
62. 此時, 你的 makefile 會依 Run the builder 的指定時機自動編譯, 或手動在選單->Project->Clean + Build Project
注意 NDK Builder 編譯的時候, Eclipse 的 Console 視窗會同手動一樣顯示 ndk-build 結果,下圖, Console 顯示 bash 執行 NDK Builder...
註: 我經驗上, 以上是設置好了, 但 console 視窗卻沒有出現上圖執行過程...原因
1. 確認步驟 61 的 bash ndk-build 路徑有沒有正確...
2. Eclipse 認定不需要執行 NDK Builder (也許因為你已經手動執行過一次了, 之後沒有再修改 C sources 或 makefile), 試著強制從選單-> clean project 看看...
P.S. 我都是修改一下 jni 的 makefile 內容, 多加一個空白按儲存, 就 (或按 F5 Refresh) 判定需要重新編譯了~
P.S. 我都是修改一下 jni 的 makefile 內容, 多加一個空白按儲存, 就 (或按 F5 Refresh) 判定需要重新編譯了~
3. C sources 的檔案應該要放到 Project Explorer 裡得 jni folder (或 working set of relevant resources 之處) 才能有相依關連.
後記:
以上的設置 Eclipse 會放在 .externalToolBuilders 下 (NAME).launch, 我的是 NDK_Builder.launch, 這個文件可以直接編輯, 我把此文件隨著專案檔案控管, 當專案其他的成員 check out 時也能直接使用(或修改一下路徑)而不是重複以上的 NDK 環境設置.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration
..略...
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS" value="--login -c "/cygdrive/c/android-ndk/ndk-build -C `cygpath -u '${build_project}' `""/>
..略...
</launchConfiguration>
2012年6月25日 星期一
Eclipse+Android SDK/NDK 開發環境的過程 (2/2)
接...Eclipse+Android SDK/NDK 開發環境的過程 (1/2)
---------------------------------------------------------------------
46. 測試 NDK 與 Eclipse 整合 (僅開發 C/C++ libraries 需要)
47. 執行 Eclipse.exe
48. 開啟 step 25~31 的專案為基礎, 如果沒有請重做
49. 在 Package Explorer 下新增一個目錄 'jni'
50. 在 'jni' 目錄下新增一個 'File' 命名為 Andriod.mk, 編輯內容如下
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
# Here we give our module name and source file(s)
LOCAL_MODULE := hello
LOCAL_SRC_FILES := hello.c
include $(BUILD_SHARED_LIBRARY)
P.S. 如果 C 文件不只一個可以在 LOCAL_SRC_FILES 裡面列出
接著要整合 NDK 產生的 lib (as xx.so) 能在 Eclipse 專案裡使用...
---------------------------------------------------------------------
46. 測試 NDK 與 Eclipse 整合 (僅開發 C/C++ libraries 需要)
47. 執行 Eclipse.exe
48. 開啟 step 25~31 的專案為基礎, 如果沒有請重做
49. 在 Package Explorer 下新增一個目錄 'jni'
50. 在 'jni' 目錄下新增一個 'File' 命名為 Andriod.mk, 編輯內容如下
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
# Here we give our module name and source file(s)
LOCAL_MODULE := hello
LOCAL_SRC_FILES := hello.c
include $(BUILD_SHARED_LIBRARY)
P.S. 如果 C 文件不只一個可以在 LOCAL_SRC_FILES 裡面列出
2012年3月21日 星期三
Eclipse+Android SDK/NDK 開發環境的過程 (1/2)
後記:
02/11/2014, 我重灌電腦, 再度安裝 andriod 開發環境, 發現 andriod 官網已經把下述之 Eclipse IDE 跟 SDK (step 7~21) 整合成一個 adt-bundle 了, 下載該包後, 解壓縮到硬碟任何地方即可以. (但前提 JRE 還是要先裝), 我沒有再新建專案, 去測試剩餘的步驟的有無差異.
參見再度安裝 andriod 開發環境
-------------------
Eclipse+Android SDK/NDK 開發環境的過程
02/11/2014, 我重灌電腦, 再度安裝 andriod 開發環境, 發現 andriod 官網已經把下述之 Eclipse IDE 跟 SDK (step 7~21) 整合成一個 adt-bundle 了, 下載該包後, 解壓縮到硬碟任何地方即可以. (但前提 JRE 還是要先裝), 我沒有再新建專案, 去測試剩餘的步驟的有無差異.
參見再度安裝 andriod 開發環境
-------------------
Eclipse+Android SDK/NDK 開發環境的過程
以下為我記錄第一次就搞定 Eclipse + Android SDK/NDK 開發環境的過程
時間為 2012/3/21 當時下載的最新版軟體及 SDK
其實在參照人家分享的過程中, 我發現
1. Cygwin 根本不用裝到 devel 整個套件
2. 不必修改任何 Cygwin 的 bash profile 檔案, 就可以讓 ndk 正常運作, 可
能是我習慣 "不用多做的事情盡量不要做" 吧, 所以試著少做一些看看...
以下:
p.s. 這是記錄日誌, 不是教學~
--------------------------------------------------------------------
1. 下載 Java SE(Standard Edition) Development Kit
url: http://www.oracle.com/technetwork/java/javase/downloads/
ref: jdk-7u3-windows-i586.exe (84.1MB)
2. 下載 Eclipse IDE for Java Developers
url: http://www.eclipse.org/downloads/
ref: eclipse-java-indigo-SR2-win32.zip (128MB)
3. 下載 Android SDK
url: http://developer.android.com/sdk/
ref: android-sdk_r16-windows.zip (28.1MB)
installer_r16-windows.exe (28.1MB)
4. 下載 Android NDK
(*** only needed for developing C/C++ native code libraries ***)
url: http://developer.android.com/sdk/ndk/
ref: android-ndk-r7b-windows.zip (76.6MB)
NOTE: 開發 NDK 還需要有 GNU 的 bash 和 make 工具, Windows 下可以安
裝 Cygwin 環境
下載 Cygwin (only needed for NDK)
url: http://cygwin.com/install.html
ref: setup.exe (681KB)
訂閱:
文章 (Atom)









