2013年1月7日 星期一

VS 2012 找不到 Windows Phone SDK project

原來...是因為VS 2012 的語言版本需要跟 Windows Phone 8 SDK的一致....

順帶提供Windows Phone 8 SDK ISO檔下載位置 , 這樣安裝比較快一點

英文版
簡體中文版
繁體中文版


2012年11月14日 星期三

Google Play Error : [RPC:S-5:AEC-0]

When you upgrade from Android 4.1.2 to 4.2, you would find you can't update the app in Google Play. I think it is a bug. Please follow the steps :

當如果從 Android 4.1.2 升級到 4.2的時候,發現無法更新 Google Play內的app時,請依循以下步驟進行:

GO TO [Setting]->[Accounts] -> [Google] -> Select your account name -> Click the menu button in upper-right -> Remove account -> Reboot ->Go to [Setting] again ->[Accounts] -> +Add account [Google] -> Add your account information again -> Open Google Play . Everything goes well.

前往「設定」->「帳戶」->「Google」-> 選擇一個google 帳戶 ->按下右上角的menu按鍵 -> 移除帳戶 -> 重新開機 ->「設定」->「帳戶」-> +新增帳戶 ->Google ->重新新增一次帳戶。 完成!



2012年11月2日 星期五

Ubuntu Eclipse Run error


紀錄一下今天碰到的錯誤!
錯誤一:
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (classFileParser.cpp:3174), pid=3944, tid=3256
#  Error: ShouldNotReachHere()
#
# JRE version: 6.0_18-b07

今天在RUN android application時,遇見了這個錯誤。這其實是個很傻的錯誤,不知道為什麼在RUN CONFIGURAION內的設定跑掉了,只要重新設定一次RUN configuration就可以囉~

還有遇到另外一個狀況。不知道為何,Project 一直出現紅點。此時,清理一下BIN下面就好了~


錯誤二

當 使用 xml產生fragment時所出現的錯誤
E/AndroidRuntime(26032): java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.

解法:
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_1,container, false);
return view;
}
加一個false即可!這個false的意思是不將這個view 直接attach 到root,如此一來就不會有重複加入的問題。


錯誤二

更新或刪除ArrayAdapter內的資料
產生 E/AndroidRuntime(28105): java.lang.UnsupportedOperationException
解法:
將setListAdapter(new ArrayAdapter(getActivity(), android.R.layout.simple_list_item_1,new String[]{"No data"})); 
的內的string array 改成

ArrayList list = new ArrayList();
list.add("No Data");
以ArrayList方式即可!

2012年7月13日 星期五

About Google Support Library

我寫for android 3.0以上的程式要如何兼容於 android 3.0以下的手機呢?

Android 3.0 (HoneyComb) 前後在UI上有很大的更動,Google針對UI的部份提供了一些向前相容的辦法,像是Support Library v4。下圖便是同樣一支Support Library v4 demo sample 跑在4.0.4(左)與2.3.5(右)的差異。





這可以讓 Android 1.6以後的手機都能夠支援你針對android 3.0以上版本寫的app,Google提供了lib作自動轉換的動作。Google的 Support Library 支援以下幾種UI元件:




(Cited from http://developer.android.com/tools/extras/support-library.html)

有興趣的人可以參考一下 SDK/extras/android/support/ 的samples。 以 Support4Demos 為例,以下有幾點要注意一下:

  • If you add  "android-support-v4.jar" to the path Properties ->Java Build Path ->Libraries , please remember check the jar file in tab"Order and Export." Or you will see the errors.*1 (請記得要勾選 Order and Export內的lib檔案否則你會看見如*1附註的錯誤)
  • Please set the attributes for USE SDK like following: 
             uses-sdk android:minSdkVersion= 4 
             android:targetSdkVersion=" 11 "     (IF YOU USE V4 LIB)
  • Please set your "android target" beyond v.11.

第三點是因為Support4Demo的sample內的res/values-v11/下的sytles.xml在V 11以下不認得,因此無法build出來。使用V11以上的版本就好了。

不過ActionBar 卻未在支援之列,這部份就要參考一下SDK Samples下的 ActionBarCompat 範例。

*1 Errors from no export the library:

07-13 15:32:03.056: E/dalvikvm(5006): Could not find class 'com.example.android.supportv4.accessibility.AccessibilityDelegateSupportActivity$AccessibilityDelegateSupportView$1', referenced from method com.example.android.supportv4.accessibility.AccessibilityDelegateSupportActivity$AccessibilityDelegateSupportView.installAccessibilityDelegate


07-13 15:32:03.086: E/AndroidRuntime(5006): FATAL EXCEPTION: main
07-13 15:32:03.086: E/AndroidRuntime(5006): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.android.supportv4/com.example.android.supportv4.accessibility.AccessibilityDelegateSupportActivity}: android.view.InflateException: Binary XML file line #12: Error inflating class com.example.android.supportv4.accessibility.AccessibilityDelegateSupportActivity$AccessibilityDelegateSupportView
07-13 15:32:03.086: E/AndroidRuntime(5006): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1872)
07-13 15:32:03.086: E/AndroidRuntime(5006): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1893)
07-13 15:32:03.086: E/AndroidRuntime(5006): at android.app.ActivityThread.access$1500(ActivityThread.java:135)
07-13 15:32:03.086: E/AndroidRuntime(5006): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1054)
07-13 15:32:03.086: E/AndroidRuntime(5006): at android.os.Handler.dispatchMessage(Handler.java:99)
07-13 15:32:03.086: E/AndroidRuntime(5006): at android.os.Looper.loop(Looper.java:150)
07-13 15:32:03.086: E/AndroidRuntime(5006): at android.app.ActivityThread.main(ActivityThread.java:4385)
07-13 15:32:03.086: E/AndroidRuntime(5006): at java.lang.reflect.Method.invokeNative(Native Method)
07-13 15:32:03.086: E/AndroidRuntime(5006): at java.lang.reflect.Method.invoke(Method.java:507)
07-13 15:32:03.086: E/AndroidRuntime(5006): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:849)
07-13 15:32:03.086: E/AndroidRuntime(5006): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:607)
07-13 15:32:03.086: E/AndroidRuntime(5006): at dalvik.system.NativeStart.main(Native Method)
07-13 15:32:03.086: E/AndroidRuntime(5006): Caused by: android.view.InflateException: Binary XML file line #12: Error inflating class com.example.android.supportv4.accessibility.AccessibilityDelegateSupportActivity$AccessibilityDelegateSupportView
07-13 15:32:03.086: E/AndroidRuntime(5006): at android.view.LayoutInflater.createView(LayoutInflater.java:518)
07-13 15:32:03.086: E/AndroidRuntime(5006): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:570)
07-13 15:32:03.086: E/AndroidRuntime(5006): at android.view.LayoutInflater.rInflate(LayoutInflater.java:623)
07-13 15:32:03.086: E/AndroidRuntime(5006): at android.view.LayoutInflater.inflate(LayoutInflater.java:408)
07-13 15:32:03.086: E/AndroidRuntime(5006): at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
07-13 15:32:03.086: E/AndroidRuntime(5006): at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
07-13 15:32:03.086: E/AndroidRuntime(5006): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:250)
07-13 15:32:03.086: E/AndroidRuntime(5006): at android.app.Activity.setContentView(Activity.java:1742)
07-13 15:32:03.086: E/AndroidRuntime(5006): at com.example.android.supportv4.accessibility.AccessibilityDelegateSupportActivity.onCreate(AccessibilityDelegateSupportActivity.java:47)
07-13 15:32:03.086: E/AndroidRuntime(5006): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1072)
07-13 15:32:03.086: E/AndroidRuntime(5006): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1836)
07-13 15:32:03.086: E/AndroidRuntime(5006): ... 11 more
07-13 15:32:03.086: E/AndroidRuntime(5006): Caused by: java.lang.reflect.InvocationTargetException
07-13 15:32:03.086: E/AndroidRuntime(5006): at java.lang.reflect.Constructor.constructNative(Native Method)
07-13 15:32:03.086: E/AndroidRuntime(5006): at java.lang.reflect.Constructor.newInstance(Constructor.java:415)
07-13 15:32:03.086: E/AndroidRuntime(5006): at android.view.LayoutInflater.createView(LayoutInflater.java:505)
07-13 15:32:03.086: E/AndroidRuntime(5006): ... 21 more
07-13 15:32:03.086: E/AndroidRuntime(5006): Caused by: java.lang.NoClassDefFoundError: com.example.android.supportv4.accessibility.AccessibilityDelegateSupportActivity$AccessibilityDelegateSupportView$1
07-13 15:32:03.086: E/AndroidRuntime(5006): at com.example.android.supportv4.accessibility.AccessibilityDelegateSupportActivity$AccessibilityDelegateSupportView.installAccessibilityDelegate(AccessibilityDelegateSupportActivity.java:73)
07-13 15:32:03.086: E/AndroidRuntime(5006): at com.example.android.supportv4.accessibility.AccessibilityDelegateSupportActivity$AccessibilityDelegateSupportView.(AccessibilityDelegateSupportActivity.java:62)
07-13 15:32:03.086: E/AndroidRuntime(5006): ... 24 more