Thursday, November 27, 2008

Android Plugin in Netbeans 6.5

Android for Netbeans 的 plugin 終於出現了,雖然 Android 官方網站只推出支援 eclipse 的 plugin ,但畢竟 Netbeans 也越來越多人使用,Google 應該也推出 Netbeans 的 plugin 才對,可能是 resource 不夠吧。

目前的 release 版本只能算是 beta 版,因為在 Linux 此 plugin 運作沒有問題,但在 Windows 上還要做些微的修改才能順利的使用此 plugin。以下為使用此 plugin 的步驟

1. 安裝 IDE 與 Android SDK 軟體
下載 NetBeans 6.5 並安裝到 d:\Java\NetBeans 6.5
下載 Android Windows SDK 並安裝到 d:\Java\android-sdk-windows-1.0_r1

2. 安裝 Android plugin
啟動 NetBeans 6.5,點選 Tools > Plugins > Settings > Add
















然後在 dialog 加入 nbandroid 的 URL http://kenai.com/downloads/nbandroid/updates.xml









這時候可以在 Available-plugin 中找到 Android 的 plugin 並按 Install 安裝
















3. Hello Word, Android
既然 plugin 裝好了,就順便寫一個初學者最常用的程式 Hello World。在 NetBeans 中按
File > New Project > Android > Android Application

















按 Next 會出現 New Android Application 的畫面,在此畫面,請填入如下畫面
















在畫面下面可以看見紅字部份,此部份是因為尚未設定 Android Platform 的關係,此時可以按 Manage Platforms > Add Platform... 來新增 Android Platform

















點選 Google Android Open Handheld Platform 按 Next,
在 Platform folder 選擇 d:\Java\android-sdk-windows-1.0_r1 後按 Next















按 Next 後,出現 Platform 的命名,在 Name 上用預設值按 Finish,Android Platform 便可新增完成

















按 Close 後,返回 New Android Application 後,Android Platform 會自動選擇

















按 Finish 後,就可以開始寫 Android 的 Hello World 程式了















將 Todo 那一行換成以下三行
TextView tv = new TextView(this);
tv.setText("Hello World, Android");
setContentView(tv);

PS : 請記得 import android.widget.TextView;

此時按 Run 會發現模擬器雖然跑出來了,但並不會將 Hello World deploy 到模擬器中
























這是因為此 plug in 有一個 bug,要修正此 bug ,可以手動修改 D:\projects\HelloAndroid\nbproject\build-impl.xml 檔將 line 466~468 換成以下內容





然後再按 Run ,便可以出現剛剛寫的 Hellow World, Android 畫面























4. 更改 skin
若想試試不同的 Android skin ,可以在 D:\projects\HelloAndroid\build.xml 中增加一個 property 去設定要用的 screen.skin 為何,在此我用的 skin 為 QVGA-P



則模擬器會出現 QVGA-L 型號的畫面
























PS : 寫此 blog 時,此 plug in 的修正尚未 publish

8 comments:

Unknown said...

init:
deps-jar:
Compiling 1 source file to E:\NetBeansProjects\AndroidApplication2\build\classes
compile:
Updating jar: E:\NetBeansProjects\AndroidApplication2\dist\AndroidApplication2.apk_
Updating zip: E:\NetBeansProjects\AndroidApplication2\dist\AndroidApplication2.apk_
Unable to access jarfile ..\framework\apkbuilder.jar
E:\NetBeansProjects\AndroidApplication2\nbproject\build-impl.xml:440: exec returned: 1
生成失败(总时间:1 秒)
出现上面这种错误,是什么原因?

Unknown said...

init:
deps-jar:
Compiling 1 source file to E:\NetBeansProjects\AndroidApplication2\build\classes
compile:
Updating jar: E:\NetBeansProjects\AndroidApplication2\dist\AndroidApplication2.apk_
Updating zip: E:\NetBeansProjects\AndroidApplication2\dist\AndroidApplication2.apk_
Unable to access jarfile ..\framework\apkbuilder.jar
E:\NetBeansProjects\AndroidApplication2\nbproject\build-impl.xml:440: exec returned: 1
生成失败(总时间:1 秒)
出现一上错误是什么原因?

Doug said...

It's again a bug with build.xml
Please change
line 441
${disk.apk} to ${basedir}/${dist.apk}

and line 443
${disk.apk} to ${basedir}/${dist.apk}_

That should work for you.

hyl said...

init:
deps-jar:
Created dir: E:\NetBeansProjects\AndroidApplication2\build\classes
Compiling 2 source files to E:\NetBeansProjects\AndroidApplication2\build\classes
compile:
Created dir: E:\NetBeansProjects\AndroidApplication2\dist
Updating jar: E:\NetBeansProjects\AndroidApplication2\dist\AndroidApplication2.apk_
Updating zip: E:\NetBeansProjects\AndroidApplication2\dist\AndroidApplication2.apk_
Using keystore: C:\Documents and Settings\Administrator\Local Settings\Application Data\Android\debug.keystore
Deleting: E:\NetBeansProjects\AndroidApplication2\dist\AndroidApplication2.apk_
jar:
这是什么错误?
该怎么解决?
谢谢!

Doug said...

你需要再按一次 Run 讓 project 在另外跑一次 build ,這樣模擬器就會跑出來了

這個可能是 bug 吧,第一次跑時啟動模擬器都會 hold 住,第二次就 ok 了

Unknown said...

Hi,
I can not add platform to Netbeans IDE. When I click the platform folder, there is no response. Some ideas? Best wishes!

Eleven.Xu
Mar.25th,2009

Doug said...

Any screenshot you can provide ?

Unknown said...

Sorry, I got the reason in the end. I downloaded the wrong version which is published in 2007. I just fixed my mistake, and it works now. Thx all the same. :)
Best withes!

Eleven.Xu
Mar.25,2009