posts - 536, comments - 111, trackbacks - 0, articles - 0
  BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理


System.out.println("availableLocales :"+  Locale.getAvailableLocales().length);

Locale[] arr=Locale.getAvailableLocales();
Arrays.sort(arr, new Comparator<Locale>() {
public int compare(Locale o1, Locale o2) {
return o1.getLanguage().compareTo(o2.getLanguage());

for(Locale l:arr){
System.out.println("語言:"+ l.getLanguage()+" 名稱:"+l.getDisplayLanguage()
+(StringUtils.isEmpty(l.getDisplayCountry())?"":(" 國家:"+ l.getDisplayCountry())) + " "+l.toString());
availableLocales :160
語言: 名稱:
語言:ar 名稱:阿拉伯文 國家:阿拉伯聯合酋長國 ar_AE
語言:ar 名稱:阿拉伯文 國家:約旦 ar_JO
語言:ar 名稱:阿拉伯文 國家:敘利亞 ar_SY
語言:ar 名稱:阿拉伯文 國家:巴林 ar_BH
語言:ar 名稱:阿拉伯文 國家:沙特阿拉伯 ar_SA
語言:ar 名稱:阿拉伯文 國家:也門 ar_YE
語言:ar 名稱:阿拉伯文 國家:埃及 ar_EG
語言:ar 名稱:阿拉伯文 國家:蘇丹 ar_SD
語言:ar 名稱:阿拉伯文 國家:突尼斯 ar_TN
語言:ar 名稱:阿拉伯文 國家:伊拉克 ar_IQ
語言:ar 名稱:阿拉伯文 國家:摩洛哥 ar_MA
語言:ar 名稱:阿拉伯文 國家:卡塔爾 ar_QA
語言:ar 名稱:阿拉伯文 國家:阿曼 ar_OM
語言:ar 名稱:阿拉伯文 ar
語言:ar 名稱:阿拉伯文 國家:科威特 ar_KW
語言:ar 名稱:阿拉伯文 國家:利比亞 ar_LY
語言:ar 名稱:阿拉伯文 國家:阿爾及利亞 ar_DZ
語言:ar 名稱:阿拉伯文 國家:黎巴嫩 ar_LB
語言:be 名稱:白俄羅斯文 be
語言:be 名稱:白俄羅斯文 國家:白俄羅斯 be_BY
語言:bg 名稱:保加利亞文 bg
語言:bg 名稱:保加利亞文 國家:保加利亞 bg_BG
語言:ca 名稱:加泰羅尼亞文 國家:西班牙 ca_ES
語言:ca 名稱:加泰羅尼亞文 ca
語言:cs 名稱:捷克文 cs
語言:cs 名稱:捷克文 國家:捷克共和國 cs_CZ
語言:da 名稱:丹麥文 國家:丹麥 da_DK
語言:da 名稱:丹麥文 da
語言:de 名稱:德文 de
語言:de 名稱:德文 國家:瑞士 de_CH
語言:de 名稱:德文 國家:奧地利 de_AT
語言:de 名稱:德文 國家:盧森堡 de_LU
語言:de 名稱:德文 國家:德國 de_DE
語言:de 名稱:德文 國家:希臘 de_GR
語言:el 名稱:希臘文 el
語言:el 名稱:希臘文 國家:塞浦路斯 el_CY
語言:el 名稱:希臘文 國家:希臘 el_GR
語言:en 名稱:英文 國家:美國 en_US
語言:en 名稱:英文 國家:新加坡 en_SG
語言:en 名稱:英文 國家:馬耳他 en_MT
語言:en 名稱:英文 en
語言:en 名稱:英文 國家:菲律賓 en_PH
語言:en 名稱:英文 國家:新西蘭 en_NZ
語言:en 名稱:英文 國家:南非 en_ZA
語言:en 名稱:英文 國家:澳大利亞 en_AU
語言:en 名稱:英文 國家:愛爾蘭 en_IE
語言:en 名稱:英文 國家:加拿大 en_CA
語言:en 名稱:英文 國家:印度 en_IN
語言:en 名稱:英文 國家:英國 en_GB
語言:es 名稱:西班牙文 國家:巴拿馬 es_PA
語言:es 名稱:西班牙文 國家:委內瑞拉 es_VE
語言:es 名稱:西班牙文 國家:波多黎哥 es_PR
語言:es 名稱:西班牙文 國家:玻利維亞 es_BO
語言:es 名稱:西班牙文 國家:阿根廷 es_AR
語言:es 名稱:西班牙文 國家:薩爾瓦多 es_SV
語言:es 名稱:西班牙文 es
語言:es 名稱:西班牙文 國家:西班牙 es_ES
語言:es 名稱:西班牙文 國家:哥倫比亞 es_CO
語言:es 名稱:西班牙文 國家:巴拉圭 es_PY
語言:es 名稱:西班牙文 國家:厄瓜多爾 es_EC
語言:es 名稱:西班牙文 國家:美國 es_US
語言:es 名稱:西班牙文 國家:危地馬拉 es_GT
語言:es 名稱:西班牙文 國家:墨西哥 es_MX
語言:es 名稱:西班牙文 國家:洪都拉斯 es_HN
語言:es 名稱:西班牙文 國家:智利 es_CL
語言:es 名稱:西班牙文 國家:多米尼加共和國 es_DO
語言:es 名稱:西班牙文 國家:古巴 es_CU
語言:es 名稱:西班牙文 國家:烏拉圭 es_UY
語言:es 名稱:西班牙文 國家:哥斯達黎加 es_CR
語言:es 名稱:西班牙文 國家:尼加拉瓜 es_NI
語言:es 名稱:西班牙文 國家:秘魯 es_PE
語言:et 名稱:愛沙尼亞文 et
語言:et 名稱:愛沙尼亞文 國家:愛沙尼亞 et_EE
語言:fi 名稱:芬蘭文 國家:芬蘭 fi_FI
語言:fi 名稱:芬蘭文 fi
語言:fr 名稱:法文 國家:比利時 fr_BE
語言:fr 名稱:法文 國家:瑞士 fr_CH
語言:fr 名稱:法文 fr
語言:fr 名稱:法文 國家:盧森堡 fr_LU
語言:fr 名稱:法文 國家:法國 fr_FR
語言:fr 名稱:法文 國家:加拿大 fr_CA
語言:ga 名稱:愛爾蘭文 ga
語言:ga 名稱:愛爾蘭文 國家:愛爾蘭 ga_IE
語言:hi 名稱:印地文 國家:印度 hi_IN
語言:hi 名稱:印地文 hi
語言:hr 名稱:克羅地亞文 國家:克羅地亞 hr_HR
語言:hr 名稱:克羅地亞文 hr
語言:hu 名稱:匈牙利文 hu
語言:hu 名稱:匈牙利文 國家:匈牙利 hu_HU
語言:in 名稱:印度尼西亞文 in
語言:in 名稱:印度尼西亞文 國家:印度尼西亞 in_ID
語言:is 名稱:冰島文 國家:冰島 is_IS
語言:is 名稱:冰島文 is
語言:it 名稱:意大利文 it
語言:it 名稱:意大利文 國家:瑞士 it_CH
語言:it 名稱:意大利文 國家:意大利 it_IT
語言:iw 名稱:希伯來文 國家:以色列 iw_IL
語言:iw 名稱:希伯來文 iw
語言:ja 名稱:日文 國家:日本 ja_JP_JP_#u-ca-japanese
語言:ja 名稱:日文 ja
語言:ja 名稱:日文 國家:日本 ja_JP
語言:ko 名稱:朝鮮文 ko
語言:ko 名稱:朝鮮文 國家:韓國 ko_KR
語言:lt 名稱:立陶宛文 lt
語言:lt 名稱:立陶宛文 國家:立陶宛 lt_LT
語言:lv 名稱:拉托維亞文(列托) lv
語言:lv 名稱:拉托維亞文(列托) 國家:拉脫維亞 lv_LV
語言:mk 名稱:馬其頓文 mk
語言:mk 名稱:馬其頓文 國家:馬其頓王國 mk_MK
語言:ms 名稱:馬來文 國家:馬來西亞 ms_MY
語言:ms 名稱:馬來文 ms
語言:mt 名稱:馬耳他文 國家:馬耳他 mt_MT
語言:mt 名稱:馬耳他文 mt
語言:nl 名稱:荷蘭文 nl
語言:nl 名稱:荷蘭文 國家:荷蘭 nl_NL
語言:nl 名稱:荷蘭文 國家:比利時 nl_BE
語言:no 名稱:挪威文 國家:挪威 no_NO_NY
語言:no 名稱:挪威文 國家:挪威 no_NO
語言:no 名稱:挪威文 no
語言:pl 名稱:波蘭文 國家:波蘭 pl_PL
語言:pl 名稱:波蘭文 pl
語言:pt 名稱:葡萄牙文 pt
語言:pt 名稱:葡萄牙文 國家:巴西 pt_BR
語言:pt 名稱:葡萄牙文 國家:葡萄牙 pt_PT
語言:ro 名稱:羅馬尼亞文 國家:羅馬尼亞 ro_RO
語言:ro 名稱:羅馬尼亞文 ro
語言:ru 名稱:俄文 國家:俄羅斯 ru_RU
語言:ru 名稱:俄文 ru
語言:sk 名稱:斯洛伐克文 sk
語言:sk 名稱:斯洛伐克文 國家:斯洛伐克 sk_SK
語言:sl 名稱:斯洛文尼亞文 sl
語言:sl 名稱:斯洛文尼亞文 國家:斯洛文尼亞 sl_SI
語言:sq 名稱:阿爾巴尼亞文 sq
語言:sq 名稱:阿爾巴尼亞文 國家:阿爾巴尼亞 sq_AL
語言:sr 名稱:塞爾維亞文 國家:黑山 sr_ME
語言:sr 名稱:塞爾維亞文 國家:波斯尼亞和黑山共和國 sr_BA_#Latn
語言:sr 名稱:塞爾維亞文 國家:塞爾維亞及黑山 sr_CS
語言:sr 名稱:塞爾維亞文 國家:波斯尼亞和黑山共和國 sr_BA
語言:sr 名稱:塞爾維亞文 國家:黑山 sr_ME_#Latn
語言:sr 名稱:塞爾維亞文 sr__#Latn
語言:sr 名稱:塞爾維亞文 國家:塞爾維亞 sr_RS
語言:sr 名稱:塞爾維亞文 sr
語言:sr 名稱:塞爾維亞文 國家:塞爾維亞 sr_RS_#Latn
語言:sv 名稱:瑞典文 國家:瑞典 sv_SE
語言:sv 名稱:瑞典文 sv
語言:th 名稱:泰文 國家:泰國 th_TH
語言:th 名稱:泰文 th
語言:th 名稱:泰文 國家:泰國 th_TH_TH_#u-nu-thai
語言:tr 名稱:土耳其文 tr
語言:tr 名稱:土耳其文 國家:土耳其 tr_TR
語言:uk 名稱:烏克蘭文 uk
語言:uk 名稱:烏克蘭文 國家:烏克蘭 uk_UA
語言:vi 名稱:越南文 國家:越南 vi_VN
語言:vi 名稱:越南文 vi
語言:zh 名稱:中文 國家:臺灣地區 zh_TW
語言:zh 名稱:中文 國家:香港 zh_HK
語言:zh 名稱:中文 國家:新加坡 zh_SG
語言:zh 名稱:中文 國家:中國 zh_CN
語言:zh 名稱:中文 zh

posted @ 2017-09-27 20:17 leekiang 閱讀(244) | 評論 (0)編輯 收藏


dependencies {
compile ('')
按以上配置,運行clean時報錯,無法加載play-services-maps 10.0.1包。
Error:(69, 14) Failed to resolve:
<a href="install.m2.repo">Install Repository and sync project</a><br><a href="openFile:/Users/you/AndroidProjects/yourapp/app/build.gradle">Show in File</a><br><a href="">Show in Project Structure dialog</a>
點擊Android Studio的提示如何修復的鏈接,就會自動下載Google的相關依賴包到本地。下載時彈出窗口中顯示的一些信息如下。

Install Missing Componets
SDK Path:/User/you/Library/Android/sdk

To install:
- SDK Patch Applier v4 (patcher;v4)
- Google Repository (extras;google;m2repository)

Installing SDK Patch Applier v4
Installing SDK Patch Applier v4 in /Users/you/Library/Android/sdk/patcher/v4
Installation of SDK Patch Applier v4 complete.

Installing Google Repository
Installing Google Repository in /Users/you/Library/Android/sdk/extras/google/m2repository
Installation of Google Repository complete. android fragment(和區別) Introduction to Google Maps API for Android

posted @ 2016-12-21 00:24 leekiang 閱讀(610) | 評論 (0)編輯 收藏

注意:使用lzyzsd/JsBridge  ,覆蓋WebViewClient時一定要繼承BridgeWebViewClient,否則js和java互相調用不管用
webview.setWebViewClient(new BridgeWebViewClient(webview) 

另外還有一個WebViewJavascriptBridge: JsBridge實現Javascript和Java的互相調用 
 Android 利用WebViewJavascriptBridge 實現js和java的交互 Android在其他線程中更新UI線程的解決方法

posted @ 2016-11-24 16:19 leekiang 閱讀(164) | 評論 (0)編輯 收藏


Intent it = new Intent(Activity.Main.this, Activity2.class);
Bundle bundle=new Bundle();
bundle.putString("name", "This is from MainActivity!");
it.putExtras(bundle);       // it.putExtra("name","abc");
startActivity(it);            // startActivityForResult(it,REQUEST_CODE);
Bundle bundle=getIntent().getExtras();
String name=bundle.getString("name");

參考: 從一個activity跳轉到另外一個activity

posted @ 2016-10-26 00:54 leekiang 閱讀(124) | 評論 (0)編輯 收藏


buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), ''
ProGuard是Android SDK附帶的。如果需要頂尖的安全性,ProGuard就力不從心了,可以使用DexGuard。

讀懂 Android 中的代碼混淆

posted @ 2016-10-25 23:41 leekiang 閱讀(190) | 評論 (0)編輯 收藏

android.util.AndroidRuntimeException: requestFeature() must be called before adding content

參考: Android中全屏或者取消標題欄

posted @ 2016-10-25 22:38 leekiang 閱讀(175) | 評論 (0)編輯 收藏


 首先在“設置”-“關于手機”里多次點擊【MIUI版本】進入開發者模式,但在Android Studio里運行時找不到設備,執行adb devices也看不到設備。
在撥號界面按  *#*#717717#*#*  , 出現 Diag USB port enable。 再次執行adb devices,看到設備了,但顯示為unauthorized。
最后發現,設置-其他高級設置-開發者選項,開啟“開發者選項”,同時開啟“USB調試”,再次執行adb devices,終于成功的顯示設備了。

posted @ 2016-10-24 11:45 leekiang 閱讀(226) | 評論 (0)編輯 收藏


1.public boolean shouldOverrideUrlLoading(WebView view, String url) { 
       return true;

Android中WebView攔截替換網絡請求數據 android WebView全面總結
android webview遠程調試  WebView處理網頁位置請求 帶進度條的webview webview處理視頻 關于android WebViewClient和WebChromeClient webview如何使用google地圖,日本人寫的 這個支持地理定位

posted @ 2016-10-21 21:43 leekiang 閱讀(188) | 評論 (0)編輯 收藏


1. Android Studio2.2在mac下啟動報錯
找不到原因,改為使用Android Studio 2.1.3

2. 編譯某項目報錯Could not find property 'config' on SigningConfig container
android {
    signingConfigs {
        config {
            keyAlias '你的key別名'
            keyPassword '你的key密碼'
            storeFile file('你的密鑰存儲路徑')
            storePassword '你的存儲密碼'

3. 編譯報錯failed to find target android-22
compileSdkVersion 24
buildToolsVersion "24.0.0"
targetSdkVersion 24
compile ''

4. 編譯報錯Gradle sync failed: Gradle DSL method not found: 'android()'
buildscript {
    repositories {
    dependencies {
        classpath ''
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
allprojects {
    repositories {
android {
    compileSdkVersion 24
dependencies {

5. 編譯報錯Plugin with id '' not found
buildscript {
    repositories {
    dependencies {
        classpath ''

6. 編譯報錯:failed to find Build Tools revision 24.0.0
buildToolsVersion "24.0.3"

7. Android Studio編譯執行以下任務時一直等待,執行了一個小時也沒動靜。
Executing tasks: [:app:generateDebugSources, :app:generateDebugAndroidTestSources, :app:prepareDebugUnitTestDependencies, :app:mockableAndroidJar]
打開Preferences->Build-Excecution-Deployment->BuildTools->Gra‌​dle,勾選Offline work

8. Exception in thread "png-cruncher_5" java.lang.RuntimeException: Timed out while waiting for slave aapt process
不知道原因,最終是通過修改SDK Build Tools為19.1.0、升級JDK由JDK7升至JDK8、增加環境變量SLAVE_AAPT_TIMEOUT=30等搞定的

9. 如何修改SDK和JDK的路徑
在File->Project Structure里修改

10. 修改Android Studio中java代碼的編譯級別
打開File --> Project Structure-->app,修改Source Compatibility和Target Compatibility


12. 報錯aapt ..finished with non- zero exit value 1
找不到原因,增加編譯參數--info后發現有用的信息:invalid resource directory name:\build\intermediates\res\merged\debug/values-b+sr+Latn

13.invalid resource directory name:\build\intermediates\res\merged\debug/values-b+sr+Latn

14. 編譯時報找不到AppCompatActivity類的錯誤
改為使用:compile ''

15. 生成apk時報錯:Missing Gradle Project Information. Please check if the IDE successfully synchronized its state with the Gradle Project Model
在工具欄里點擊“Sync Project with Gradle Files”按鈕

16.導入某項目時報錯Error:Gradle version 2.14.1 is required. Current version is 2.4. If using the gradle wrapper, try editing the distributionUrl in...
打開Android Studio的File->Project Structure,點擊Project,將Gradle version修改為2.14.1

Android Studio如何發布APK:

26. 在gradle.properties中增加android.enableBuildCache=true,貌似能加快編譯速度。

posted @ 2016-10-13 21:25 leekiang 閱讀(1392) | 評論 (0)編輯 收藏



import java.util.Enumeration;
import java.util.regex.Pattern;

public class GetIP {
public static void main(String[] args) {
public static InetAddress getLocalAddress0() {
??????? InetAddress localAddress = null;
??????? try {
??????????? localAddress = InetAddress.getLocalHost();
??????????? if (isValidAddress(localAddress)) {
??????????????? return localAddress;
??????????? }
??????? } catch (Throwable e) {
??????????? System.out.println("Failed to retriving ip address, " + e.getMessage());
??????? }
??????? try {
??????????? Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
??????????? if (interfaces != null) {
??????????????? while (interfaces.hasMoreElements()) {
??????????????????? try {
??????????????????????? NetworkInterface network = interfaces.nextElement();
??????????????????????? Enumeration<InetAddress> addresses = network.getInetAddresses();
??????????????????????? if (addresses != null) {
??????????????????????????? while (addresses.hasMoreElements()) {
??????????????????????????????? try {
??????????????????????????????????? InetAddress address = addresses.nextElement();
??????????????????????????????????? if (isValidAddress(address)) {
??????????????????????????????????????? return address;
??????????????????????????????????? }
??????????????????????????????? } catch (Throwable e) {
??????????????????????????????????? System.out.println("Failed to retriving ip address, " + e.getMessage());
??????????????????????????????? }
??????????????????????????? }
??????????????????????? }
??????????????????? } catch (Throwable e) {
??????????????????????? System.out.println("Failed to retriving ip address, " + e.getMessage());
??????????????????? }
??????????????? }
??????????? }
??????? } catch (Throwable e) {
??????????? System.out.println("Failed to retriving ip address, " + e.getMessage());
??????? }
??????? System.out.println("Could not get local host ip address, will use instead.");
??????? return localAddress;
??? }
??? private static boolean isValidAddress(InetAddress address) {
??????? if (address == null || address.isLoopbackAddress())
??????????? return false;
??????? String name = address.getHostAddress();
??????? return (name != null
??????????????? && ! ANYHOST.equals(name)
??????????????? && ! LOCALHOST.equals(name)
??????????????? && IP_PATTERN.matcher(name).matches());
??? }
?? ?
??? public static final String LOCALHOST = "";

??? public static final String ANYHOST = "";
?? ?
??? private static final Pattern IP_PATTERN = Pattern.compile("\\d{1,3}(\\.\\d{1,3}){3,5}$");

posted @ 2015-03-02 06:29 leekiang 閱讀(425) | 評論 (0)編輯 收藏