2012年4月19日 星期四

Admob 更新後出現 NoClassDefFoundError 錯誤

我是使用 Classpath Variable 來設定 Admob 的 jar 檔,由於 Admob 更新後新的 jar 檔檔名會不一樣,我猜測這時候因為 Variable 無效所以 Eclipse 主動把 Export 選項取消,造成 apk 裡面沒有 Admob 的 jar 檔而產生錯誤。

修正 Variable 的檔案路徑後,把這個選項選取就能修正這個錯誤。

(其他類似的問題也是一樣)

2012年4月11日 星期三

使用 MediaPlayer 遇到的問題

依據 SDK 文件說明,以下是 State Diagram



使用 MediaPlayer 發現一些問題

1.當 setDataSource() 是網路上的檔案(http),在呼叫 prepareAsync() 必定有一段連線的時間,如果使用者在這時候決定不播了,由於還未進入 Prepared state 而是在 Initialized state,無法呼叫 stop()、release() 來終止 MediaPlayer。
而且通常要讀取一些(Buffer)才會進入 Prepared state,也就是說呼叫 prepareAsync() 之後但是還未進入 Prepared state 的這段時間(依據網路狀態),無法中終止 MediaPlayer,目前只能在 onPrepared() 另外判斷是不是要終止 MediaPlayer。

2.stop(),如果在不適合的 state 呼叫,之後的 Player 會出現不穩或不能播其他多媒體的狀況,就算使用 try catch 也一樣,如果任何 state 都可以呼叫,那第一點也就有辦法停止。

3.當進入 Prepared state 時,OnBufferingUpdateListener 會送出一個 percent = 100 的 event,這在判斷是否已經讀完整個多媒體檔案會造成誤判,必須多使用一個 boolean 變數在 prepareAsync() 前設為 false,在 onPrepared() 設為 true,如果是 true 才是真的讀完多媒體檔案。

4.當兩個 MediaPlayer 分別在兩個 SurfaceView 同時播放同一個影片時,會造成一個 MediaPlayer 畫面延遲或斜影但聲音正常,哪一個會有問題則不一定,不知道是架構問題還是硬體問題。

2012年3月5日 星期一

Debug 進入 Library Project 時出現 "Source Not Found" 無法逐行 Debug

事情原本是很簡單的,Activity Project 用了另一個 Library Project,然後 Debug 的時候如果 Breakpoint 在 Library 會出現 "Source Not Found" 的問題造成無法 Debug,這個問題也不是每個 Library Project 都會發生,照理說 Activity Project 使用 Library Project 後 Debug 應該要能找到 Library Project 的 Source,這個問題不應該發生的但是還是發生了 (囧),搞了 2 天最後終於 Google 到解決辦法,照做果然可以看到 Source 逐行 Debug。

有一點跟原始文章不太一樣的是最後的 "Select All" 我只有把要 Debug 的 Library Project 加進去就可以,沒必要把所有的 Project 加進去。


Unable to Debug Library Projects with ADT v14 - Source Not Found
Tried all of the above and it did not work for me, however the workaround detailed here did.
  1. Start debugging, and run until you hit a breakpoint (and precisely get a .class file instead of the .java you would like to have)
  2. Right click in the Debug view of the Debug perspective (for example on the call stack), and choose "Edit Source Lookup Path"
  3. Add all your projects above "Default", via "Add..." > "Java project" > "Select All"
(I'm using ADT 15.0.2 preview from http://tools.android.com/download)

2012年1月16日 星期一

台灣 App 軟體市場的悲哀

這邊要談的不是付費軟體,是廣告贊助軟體,第一個 App iNews 也上市一段時間了,目前這個軟體只有鎖定台灣,台灣的安裝率比率為 97%,繁體中文的安裝率比率為 98%,也就是絕大部分的使用者都在台灣,說真的,廣告點擊率真的是悲哀,怎麼悲哀法,看圖說故事吧。


這是 iNews 的廣告點擊率,因為會有延遲現像,最後兩天可以先不要看,看 1/5 ~ 1/14 日,最高的時候有 0.49%,最低的只有 0.22%,平均大概 0.4%,而且這個點擊率還沒包含 root 過擋掉廣告的使用者,因為擋掉廣告不會有廣告,也不會在統計裡面。



好吧! 可能是軟體超級爛所以使用者不想點,要是我用了一個很爛的軟體我也不想點廣告,看一下 Market 上的評語大概被罵到爆。

咦~~ 有 46 人評分,平均是 4.6 分也不算太差,這是怎麼回事! 見鬼了嗎?



剛好 1/5(所以 iNews 也從 1/5 開始才容易比較) 我把第二個有廣告贊助的軟體上架了,看一下這個軟體的狀況,如果點擊率還是那麼低,那就是我的軟體實在超級爛,那些在 iNews 評分的人都是大好人,明明超級爛的軟體也給 4 或 5 分。

咦~~ 這又怎麼了,點擊率沒那麼低呀!!!!!!



把這兩個軟體的點擊率做個圖表,這樣比較容易看出差距,我勒真的見鬼了,第二個軟體最差的點擊率還比 iNews 的點擊率高,iNews 的點擊率看起來很平均,大概就是固定幾個會點廣告的好心使用者,謝謝您們 (大心)



第二的軟體是不限定地區,下圖是第二個軟體的國家/地區安裝率,台灣佔全部的 46.6%,說不定第二個軟體點廣告的人大部分都是台灣的使用者,這樣的話還是因為 iNews 超級爛所以大家不想點,那些在 iNews 評分的人都是大好人,明明超級爛的軟體也給 4 或 5 分。



看一下第二個軟體台灣的點擊率,這個排序是依照要求的廣告多寡,第一多的台灣點擊率只有 0.21%,第二多的印度有 5.59%。囧rz





那明明是你的悲哀跟台灣 App 軟體市場有什麼關係?
這樣說好了,繼續這樣下去,開發者只好開發全世界通用的軟體,專為台灣開發的在地資訊軟體會越來越少。


對開發者有差嗎?
說真的有差但不一定不好,因為開發者放棄台灣市場專心開發全世界通用的軟體,而且全世界的使用者是台灣的千千萬萬倍,這樣收入有可能反而會比較高。


那就只是少了台灣在地資訊軟體有差嗎?
智慧型手機其中一項重要應用就是在地資訊,在地資訊軟體可以提供各式各樣的生活應用,而在地資訊軟體由其他國家/地區的開發者來開發所花費的成本比當地人高,所以在地資訊軟體大部分都是當地人開發比較多,以後,台灣的開發者都去開發全世界通用的軟體後,在地資訊軟體誰來開發?


這樣是不是台灣 App 軟體市場的悲哀? 還是應該說,這樣是台灣 App 軟體使用者的悲哀?

iNews 1.3

- 支援 App Widget,目前有三種 Widget 可用,分別是 Tiny(1x1),Small(1x2),Middle(1x4)
- 新增中時電子報影音新聞
- 加入相容模式,在無法分析新聞網頁時顯示全部新聞文字內容


App Widget 說明


三種 Widget



可設定
1.App Widget 的新聞來源,可長按或點擊前方 V 圖示設定整個分類,不過不建議加入太多的新聞來源,還沒輪播完又重新載入,那些沒輪播到的只是浪費記憶體而已,通常是即時新聞才有需要用 App Widget。
2.新聞輪播間隔,預設是 60 秒。
3.新聞下載間隔,預設是 10 分鐘。
4.只有 Wi-Fi 連線才下載新聞。



以下為實際使用畫面,三個 Widget 依序是 Tiny,Small,Middle。




全部的 App Widget 皆可以按同步圖示手動下載新聞資料,點擊新聞標題可開啟 iNews 讀取新聞內容,目前從 App Widget 開起來是一個簡易型的新聞頁面,大部份功能都拿掉只留下部分功能(分享、重新載入、開啟原始網頁、長按播放影片)。

接下來是三種 App Widget 的說明。
Tiny:只顯顯示新聞標題。
Small:顯示新聞標題、圖片(如果有)、時間及目前新聞筆數/總筆數。
Middle:顯示新聞標題、圖片(如果有)、日期/時間及目前新聞筆數/總筆數,且可以手動切換上下則新聞。

2012年1月5日 星期四

WhatsTube 簡介

WhatsTube 提供您一個快速又簡單的操作,讓您不用花費太多心力就可以觀賞目前 Youtube 上最新、最熱門的影片。

軟體縮圖:


目前版本:1.0

更新時間:2012-01-05

系統需求:Android 2.1 以上

Market:https://market.android.com/details?id=com.daniel.mobile.android.whatstube

正常播放 (大圖)


全螢幕播放 (大圖)



當然這個軟體不是只有這樣,可以設定的 Youtube Feed 有以下這些:
  • 評分最高
  • 熱門收藏
  • 最多人觀看
  • 最多人分享
  • 最受歡迎
  • 最新
  • 最多評論
  • 最多回應
  • 最新精選



除了 Youtube Feed 還可以依照不同類別進行篩選,更可以選擇您喜歡的地區。


有了以上快速又簡單的設定就能看到各式各樣的 Youtube 影片外,還可以進一步讓您輸入關鍵字來查詢相關的影片。



這麼方便好用外,您更可以依照目前的網路狀況,選擇不同的影片品質。



QR Code

2012年1月3日 星期二

使用 ProGuard 產生 apk 時遇到 Conversion to Dalvik format failed with error 1

按照 http://developer.android.com/guide/developing/tools/proguard.html 把 project.properties 加上 proguard.config=proguard.cfg 這行後,使用 Export Wizard 產生 apk 時發生 "Conversion to Dalvik format failed with error 1" 錯誤。

解決方法 :

1.下載最新版本 ProGuard,以 4.7 版為例
http://sourceforge.net/projects/proguard/files/proguard/

2.將 proguard4.7.zip 解壓縮。

3.將 bin 及 lib 兩個目錄覆蓋 Android SDK\tools\proguard\ 的 bin 及 lib 即可。