有一種情形是 你事先裝了32Bit的版本
可是現在的Android Studio會建議你使用64Bit
所以你必須先下載64Bit的JDK
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
前往 控制台\系統及安全性\系統
點選進階系統設定/進階/環境變數
新增一個環境變數JDK_HOME 指向你64Bit的JDK檔案
再開啟一次Android Studio 就完成了
以上參考至此:
http://stackoverflow.com/questions/24898684/android-studio-no-jvm-installation-found
2014年12月16日 星期二
Linux中 Android Studio Error:Failed to find: com.android.support:appcompat-v7:21.+
基本上安裝需要的套件一下就能解決
但是Linux環境下 由於安裝路徑
可能會存在只有Root才可使用的檔案
請將這個檔案的權限修改為使用者可以寫入的權限
(我的檔案是temp檔)
但是Linux環境下 由於安裝路徑
可能會存在只有Root才可使用的檔案
請將這個檔案的權限修改為使用者可以寫入的權限
(我的檔案是temp檔)
Anroid Studio Error:compileSdkVersion android-21 requires compiling with JDK 7
請將你的JDK路徑修改成/usr/lib/jvm中的第7版即可
2014年11月26日 星期三
Android資源 VerticalProgressBar
由於Android原先並沒有提供垂直型的ProgressBar
這邊有Halzhang別人寫好的 VerticalProgressBar 大家可以參考利用看看
https://github.com/halzhang/Android-VerticalProgressBar
這邊有Halzhang別人寫好的 VerticalProgressBar 大家可以參考利用看看
https://github.com/halzhang/Android-VerticalProgressBar
2014年11月23日 星期日
Android Warning:onTouch should call View#performClick when a click is detected
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
//some code....
break;
case MotionEvent.ACTION_UP:
v.performClick();//這邊必須補上 否則會有此警告
break;
default:
break;
}
return true;
}
參考答案:http://stackoverflow.com/questions/24952312/ontouchlistener-warning-ontouch-should-call-viewperformclick-when-a-click-is-d
Eclipse:workspace in use or cannot be created choose a different one
前往你的workspace資料夾
並且進入.metadata資料夾
並刪除.lock檔案
2014年11月17日 星期一
轉貼:Android 自定義Dialog
http://loginleft.iteye.com/blog/1975980
http://www.cnblogs.com/and_he/archive/2011/09/16/2178716.html
http://www.dotblogs.com.tw/superlm102/archive/2013/02/05/90118.aspx
http://www.cnblogs.com/archie2010/p/3256047.html
http://www.cnblogs.com/and_he/archive/2011/09/16/2178716.html
http://www.dotblogs.com.tw/superlm102/archive/2013/02/05/90118.aspx
http://www.cnblogs.com/archie2010/p/3256047.html
2014年11月16日 星期日
2014年11月13日 星期四
Android Studio快捷鍵
Ctrl + Space:程式碼提示
Ctrl + Alt + L:我自訂的自動縮排(因為Linux有衝突 所以我改成Ctrl + Shift + Q)
Ctrl + Y : 刪除整行程式碼
Ctrl + D 有選取部份:複製又貼上/沒選取:貼上
Ctrl + Shift + / :/* */
Ctrl + / ://
Ctrl + B:顯示錯誤點(同Ctrl + 左鍵)
Shift + F10:執行
Ctrl + Shift + Space:方法的參數提示
Ctrl + F4:關閉頁面
Ctrl + ~:編輯環境的設定
Alt + 左右方向鍵:往...換頁面
Alt + 6:顯示Log Cat (Mac : Command + 6)
Ctrl + F:尋找文字
Ctrl + ~:尋找並取代
Shift + F6:重新命名
其他
Ctrl + N:在編輯器中打開任何Class
Ctrl + Q:觀看類別或方法的文件
Ctrl + F12:導航目前編輯的檔案
Ctrl + O:override methods of the base class
Alt + Insert:generate getter and setter methods for any fields of your class.
Ctrl + Alt + L:我自訂的自動縮排(因為Linux有衝突 所以我改成Ctrl + Shift + Q)
Ctrl + Y : 刪除整行程式碼
Ctrl + D 有選取部份:複製又貼上/沒選取:貼上
Ctrl + Shift + / :/* */
Ctrl + / ://
Ctrl + B:顯示錯誤點(同Ctrl + 左鍵)
Shift + F10:執行
Ctrl + Shift + Space:方法的參數提示
Ctrl + F4:關閉頁面
Ctrl + ~:編輯環境的設定
Alt + 左右方向鍵:往...換頁面
Alt + 6:顯示Log Cat (Mac : Command + 6)
Ctrl + F:尋找文字
Ctrl + ~:尋找並取代
Shift + F6:重新命名
其他
Ctrl + N:在編輯器中打開任何Class
Ctrl + Q:觀看類別或方法的文件
Ctrl + F12:導航目前編輯的檔案
Ctrl + O:override methods of the base class
Alt + Insert:generate getter and setter methods for any fields of your class.
2014年11月12日 星期三
Linux Android Studio 自動縮排快捷鍵問題
由於Android Studio的自動縮排快捷鍵是
Ctrl + Alt + L
這個跟Linux的鎖住畫面是相同的
所以你按下Ctrl + Alt + L 你會先被鎖住畫面
因此我們必須修改快捷鍵 前往
File -> Settings -> Editor -> Keymap -> MainMeny -> Code下的Reformat Code
為它添加新的快捷鍵或者是做修改
例如Ctrl + Shift + Q
(這邊很多快捷鍵多被設定過了
要找沒有被設定過的快捷鍵其實還滿難找的)
Ctrl + Alt + L
這個跟Linux的鎖住畫面是相同的
所以你按下Ctrl + Alt + L 你會先被鎖住畫面
因此我們必須修改快捷鍵 前往
File -> Settings -> Editor -> Keymap -> MainMeny -> Code下的Reformat Code
為它添加新的快捷鍵或者是做修改
例如Ctrl + Shift + Q
(這邊很多快捷鍵多被設定過了
要找沒有被設定過的快捷鍵其實還滿難找的)
Kali Linux 安裝Android Studio
首先請自這邊下載
https://developer.android.com/sdk/installing/studio.html
前往Downloads/
cd Downloads/
請用root權限來操作 因為一開始他沒有給使用者很大的權限
我們先把他移到~來
https://developer.android.com/sdk/installing/studio.html
前往Downloads/
cd Downloads/
解壓縮
sudo unzip android-studio-ide-135.1538390-linux.zip請用root權限來操作 因為一開始他沒有給使用者很大的權限
我們先把他移到~來
sudo mv android-studio ~
給予權限 757
chmod 757 android-studio/
接下來我們要開啟Android Studio 進入android-studio資料夾
cd android-studio/
進入bin檔 可是缺乏權限 所以我們給個權限
sudo chmod 757 bin
再進入bin檔
cd bin/
sh裡面的studio.sh就可開啟 可是一樣有缺乏權限的問題
sudo chmod 757 studio.sh
執行 成功開啟Android Studio
sh studio.sh
轉貼:新版eclipse 出現appcompat的問題
解法在此 新版問題還滿多的
難怪有些人跑去弄Android Studio了
http://jpress.tw/android-project-error-appcompat_v7-other-problem
難怪有些人跑去弄Android Studio了
http://jpress.tw/android-project-error-appcompat_v7-other-problem
2014年11月11日 星期二
轉貼:Kali Linux安裝TeamViewer 以一般方法無法安裝之解法
2 Answers的方法雖然步驟滿多的
但是我有成功 大家可以試試看
http://askubuntu.com/questions/362951/installed-teamviewer-using-a-64-bits-system-but-i-get-a-dependency-error
但是我有成功 大家可以試試看
http://askubuntu.com/questions/362951/installed-teamviewer-using-a-64-bits-system-but-i-get-a-dependency-error
2014年11月10日 星期一
Kali Linux 安裝Genymotion步驟(尚未完全解決)
首先辦個帳號 步驟不多 以後也用得到
之後前往官網下載Genymotion
由於Kali是Debain的版本 所以選擇Linux Debian 64 bits
不過也因為只有64bits 所以32bits我就不清楚囉
https://cloud.genymotion.com/page/launchpad/download/
載好之後開啟會有問題
之後前往Downloads/開始安裝
cd Downloads/
但是缺乏權限所以加入執行權限
sudo chmod +x genymotion-2.3.0_x64_debian.bin
執行開始安裝
之後前往官網下載Genymotion
由於Kali是Debain的版本 所以選擇Linux Debian 64 bits
不過也因為只有64bits 所以32bits我就不清楚囉
https://cloud.genymotion.com/page/launchpad/download/
載好之後開啟會有問題
之後前往Downloads/開始安裝
cd Downloads/
但是缺乏權限所以加入執行權限
sudo chmod +x genymotion-2.3.0_x64_debian.bin
執行開始安裝
./genymotion-2.3.0_x64_debian.bin
安裝完後直接開啟Genymotion會有問題
因為沒有裝VirtualBox 先到下面的網址去
https://www.virtualbox.org/wiki/Linux_Downloads
開始挑版本 我們先看看自己的版本適合哪種
cat /proc/version
本人得到
Linux version 3.12-kali1-amd64 (debian-kernel@lists.debian.org) (gcc version 4.7.2 (Debian 4.7.2-5) ) #1 SMP Debian 3.12.6-2kali1 (2014-01-06)
所以我是amd64 再來請選擇Debian 7.0 ("Wheezy")
因為6.0的Kali好像不適用 我安裝會失敗
接著要安裝一個Kali沒有的東西 dkms
因為安裝VirtualBox會用到 我們要先安裝
sudo apt-get install dkms
(官網在這邊也有提到:https://cloud.genymotion.com/page/faq/#vbox)
安裝dkms好後前往Downloads/
cd Downloads/
再來開始安裝VirtualBox
sudo dpkg -i virtualbox-4.3_4.3.18-96516~Debian~wheezy_amd64.deb
後續的VirtualBox會有問題(其實是Waring 但這會導致Genymotion無法正確開啟)
我花了1天才解決 是在進行超多次的測試 之後重開機才成功的
所以我也不清楚我是如何完成的
我差點都放棄了 是一直拿錯誤訊息去Google才做到的...
我花了1天才解決 是在進行超多次的測試 之後重開機才成功的
所以我也不清楚我是如何完成的
我差點都放棄了 是一直拿錯誤訊息去Google才做到的...
Kali Linux 建制Android開發環境會出現的問題
android-sdks/build-tools/17.0.0/aapt: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory
可參考網址如下
http://stackoverflow.com/questions/17020298/android-sdks-build-tools-17-0-0-aapt-error-while-loading-shared-libraries-libz
可參考網址如下
http://stackoverflow.com/questions/17020298/android-sdks-build-tools-17-0-0-aapt-error-while-loading-shared-libraries-libz
2014年11月9日 星期日
Linux *.zip
壓縮:
[ jonny@linux ~ ] $ zip FileName.zip DirName
解壓縮:
[ jonny@linux ~ ] $ unzip FileName.zip
詳細可參考這位大大的文章:
http://note.drx.tw/2008/04/command.html
http://note.drx.tw/2008/04/command.html
Kali Linux Chrome亂碼問題
先安裝字體
http://wenq.org/wqy2/index.cgi?ZenHei
再改字體
http://blog.csdn.net/lzqlgq/article/details/23126651
http://wenq.org/wqy2/index.cgi?ZenHei
再改字體
http://blog.csdn.net/lzqlgq/article/details/23126651
2014年11月3日 星期一
轉貼:Android匯出APK
http://sing522.pixnet.net/blog/post/36819992-%7Bandroid%7D-%E5%A6%82%E4%BD%95%E5%8C%AF%E5%87%BAapk%EF%BC%8C%E5%9C%A8%E6%89%8B%E6%A9%9F%E4%B8%8A%E5%AE%89%E8%A3%9D%E4%BD%BF%E7%94%A8!!
2014年11月2日 星期日
layout margin
http://stackoverflow.com/questions/19342269/create-and-set-margin-programmatic-for-relative-layout-android
ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) mView.getLayoutParams();
params.topMargin += 20;
mView.requestLayout(); // important
2014年10月29日 星期三
Custom Progressbar
http://blog.csdn.net/lcore/article/details/8728298
http://my.oschina.net/u/614972/blog/144434
http://www.cnblogs.com/tianzhijiexian/p/3854105.html
http://winwyf.blog.51cto.com/4561999/857867
http://stackoverflow.com/questions/15243553/how-to-implement-this-type-of-progressbar-in-android-using-xml-file
http://www.tiemenschut.com/how-to-customize-android-progress-bars/
http://my.oschina.net/u/614972/blog/144434
http://www.cnblogs.com/tianzhijiexian/p/3854105.html
http://winwyf.blog.51cto.com/4561999/857867
http://stackoverflow.com/questions/15243553/how-to-implement-this-type-of-progressbar-in-android-using-xml-file
http://www.tiemenschut.com/how-to-customize-android-progress-bars/
2014年10月26日 星期日
2014年10月23日 星期四
2014年10月6日 星期一
VideoView OnClickListener?
http://stackoverflow.com/questions/6175456/android-why-cant-i-give-an-onclicklistener-to-a-videoview
2014年10月5日 星期日
Java 小數第幾位
float fcalc = (float)3.14159;
NumberFormat nf = NumberFormat.getInstance();
nf.setMaximumFractionDigits( 2 ); //小數後兩位
System.out.println( "a / b = " nf.format( fcalc ) );
NumberFormat nf = NumberFormat.getInstance();
nf.setMaximumFractionDigits( 2 ); //小數後兩位
System.out.println( "a / b = " nf.format( fcalc ) );
2014年9月26日 星期五
AlertDialog的順序
假設今天有2個AlertDialog adA跟adB
先執行adA.show();
在執行adB.show();
你會發現adB會先出來在上面
解結完adB之後 才會出現adA
這其實有點LIFO後進先出的概念
在執行adB.show();
你會發現adB會先出來在上面
解結完adB之後 才會出現adA
這其實有點LIFO後進先出的概念
2014年9月19日 星期五
ProgressBar 設定高度寬度
http://stackoverflow.com/questions/5008059/change-the-width-of-a-progressbar-added-at-runtime
2014年8月24日 星期日
setContentView()時OOF
在manifast.xml中的application標籤
加入android:largeHeap="true"
加入android:largeHeap="true"
可參考文章
http://hilary3113.iteye.com/blog/1766856
2014年8月21日 星期四
寫給大家的 Git 教學
http://littleb.tc/slides/2012/everyone/git.html
第三版
2012 Littlebtc (Hsiao-Ting Yu)
改寫自 Scott Chacon 的「Pro Git」電子書。
第三版
2012 Littlebtc (Hsiao-Ting Yu)
改寫自 Scott Chacon 的「Pro Git」電子書。
2014年8月19日 星期二
Library Project
最近準備要把專案整合
但是我對Android的Library非常不熟悉
之前弄老是出錯 而且還有各式各樣錯
所以就乖乖做個Test Cast
找出問題的點到底出在哪兒
於是我開了個專案 簡稱PA
再開了另一個專案 簡稱PB
我在PA的Activity中設了個按鈕
想要跳到了PB的Activity
萬事俱備後 我把PB調成is Library
然後調配PA的manifast
接下來開始Run
按鈕按下去 畫面閃了一下
我還是在PA的Activity
我檢查了一下我的Intent 並沒有出錯
卡了一段時間 我受不了把Eclipse關掉
然後在Run一次 結果就正常運行了
這根本是莫名其妙
哪有IDE要關掉重開才能正常跑的
不過今天早上才遇到Log跑不出來
結果Eclipse重開就好了...的這種鳥事
但是這種問題真的很誇張
我必需求證到底是 鬼月怪事多 還是Eclipse的問題
所以我又在開了個專案 簡稱PC
同樣發生了上述的怪事!
同樣發生了上述的怪事!
但是我對Android的Library非常不熟悉
之前弄老是出錯 而且還有各式各樣錯
所以就乖乖做個Test Cast
找出問題的點到底出在哪兒
於是我開了個專案 簡稱PA
再開了另一個專案 簡稱PB
我在PA的Activity中設了個按鈕
想要跳到了PB的Activity
萬事俱備後 我把PB調成is Library
然後調配PA的manifast
接下來開始Run
按鈕按下去 畫面閃了一下
我還是在PA的Activity
我檢查了一下我的Intent 並沒有出錯
卡了一段時間 我受不了把Eclipse關掉
然後在Run一次 結果就正常運行了
這根本是莫名其妙
哪有IDE要關掉重開才能正常跑的
不過今天早上才遇到Log跑不出來
結果Eclipse重開就好了...的這種鳥事
但是這種問題真的很誇張
我必需求證到底是 鬼月怪事多 還是Eclipse的問題
所以我又在開了個專案 簡稱PC
同樣發生了上述的怪事!
同樣發生了上述的怪事!
因為發生了兩次所以我也要說兩次
真的 關掉Eclipse 再開 就能正常跑了
雖然我過去學Android的時候就知道
Eclipse重開可以解決很多事情
但是這種的也太嚴重
開始對開源的東西感到有點無奈了 哈哈哈
2014年8月17日 星期日
AeryTimer
http://aery9527.pixnet.net/blog/post/183715679-java---%E7%B0%A1%E6%98%93%E8%90%AC%E7%94%A8%E8%A8%88%E6%99%82%E5%99%A8
計時器 可以固定每n毫秒做某件事情
或者是當計時器被停止時做另一件事情
要注意的是 計時器也是占用一個Thread
所以如果有要在計時器中操作UI的話
記得要用Handler或runOnUiThread來做額外處理
計時器 可以固定每n毫秒做某件事情
或者是當計時器被停止時做另一件事情
要注意的是 計時器也是占用一個Thread
所以如果有要在計時器中操作UI的話
記得要用Handler或runOnUiThread來做額外處理
TextProgressbar
http://www.coderzheaven.com/2012/05/18/custom-progressbar-android-text-part-3/
Android的Progressbar是沒有搭配文字的
這邊有個客製化的TextProgressbar
可以使用文字(value/max之類...等等)
Android的Progressbar是沒有搭配文字的
這邊有個客製化的TextProgressbar
可以使用文字(value/max之類...等等)
2014年8月15日 星期五
NumberPicker於xml設定最大最小值
想在AlertDialog做個自己的View
上面放2個NumberPicker來調整時間(MM:SS)
結果寫完才發現 NumberPicker於xml完全不給調整最大最小值
只能在Java寫 當下我整個傻眼
幸好找到這篇文章 找到了解決方案
就是寫一個客製化的NumberPicker 就可以設定了
參考以下文章 好文一篇!
http://stackoverflow.com/questions/12317960/android-numberpicker-set-min-max-default-from-xml
上面放2個NumberPicker來調整時間(MM:SS)
結果寫完才發現 NumberPicker於xml完全不給調整最大最小值
只能在Java寫 當下我整個傻眼
幸好找到這篇文章 找到了解決方案
就是寫一個客製化的NumberPicker 就可以設定了
參考以下文章 好文一篇!
http://stackoverflow.com/questions/12317960/android-numberpicker-set-min-max-default-from-xml
2014年8月11日 星期一
SlidingDrawer不因為其他View而影響拖拉範圍
<Relativelayout>
<Linearlayout>
<!--其他內容-->
</Linearlayout>
<Slidingdrawer>
<!--SlidingDrawer的內容-->
</Slidingdrawer>
</Relativelayout>
只要有LinearLayout框住其他的View
就不會產生SlidingDrawer因為其他View
而無法完全脫拉出來的問題
<Linearlayout>
<!--其他內容-->
</Linearlayout>
<Slidingdrawer>
<!--SlidingDrawer的內容-->
</Slidingdrawer>
</Relativelayout>
只要有LinearLayout框住其他的View
就不會產生SlidingDrawer因為其他View
而無法完全脫拉出來的問題
以最省記憶體的方式換背景
如果你在設定背景圖片時 發現出現記憶體不足的問題(Out of Memory 異常) 可以考慮使用以下的Code
// Minimize 類別 public class Minimize { /** * 以最省記憶體的方式來存取圖片 * * @param context * @param resId * @return */ private static Bitmap readBitMap(Context context, int resId) { BitmapFactory.Options opt = new BitmapFactory.Options(); opt.inPreferredConfig = Bitmap.Config.RGB_565; opt.inPurgeable = true; opt.inInputShareable = true; // 獲取圖片資源 InputStream is = context.getResources().openRawResource(resId); return BitmapFactory.decodeStream(is, null, opt); } //將redId採取Bitmap 再轉成BitmapDrawable 就可以setBackground()了 public static BitmapDrawable getBitmapDrawable(Context context,int redId){ Bitmap bm = readBitMap(context, redId); BitmapDrawable bd = new BitmapDrawable(context.getResources(), bm);//轉換成Drawable return bd; } }
//之後設定背景 RelativeLayout background = (RelativeLayout) findViewById(R.id.map); background.setBackground(Minimize.getBitmapDrawable(this, R.drawable.map_relaxbg));
2014年8月4日 星期一
設定全螢幕及設定橫向
//在AndroidManifast.xml中的activity加入
<activity
android:name="com.hifive.toystage.ToyActivity"
android:label="@string/app_name"
android:screenOrientation="landscape"
android:theme="@android:style/Theme.NoTitleBar" >
//以下方法並不適用 他會先出現標題之後再轉成無標題的怪異行徑 //若要採用 請記得放至setContentView()的前面 private void setWindows() { getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);//設定全螢幕 requestWindowFeature(Window.FEATURE_NO_TITLE);//設定無標題 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);//設定橫向 }
Service & BroadcastReceiver
Service大彙總
Started Service
Bind Service
當Acitivty退出 Service也會持續運作的方法
備註 : 新增Service記得要註冊
BroadcastReceiver大彙總
BroadcastReceiver完整介紹
Intent的Action大全
備註 : 動態註冊法在onCreate()中註冊比較好 然後在onDestory中進行銷毀。
另有一說是在onResume()註冊 然後在onPause銷毀
若使用使用靜態註冊法 記得在AndroidManifest.xml加入權限
靜態註冊法加入方法為:
AndroidManifest.xml -> Application -> 加入一個Receiver並將Name設定好 ->
再往剛剛設定好的Receiver加入Intent Filter ->
再往剛剛設定好的Intent Filter加入Action ->
設定Action 的Name
SQLite Foreign Key
CREATE TABLE parent(a PRIMARY KEY, b UNIQUE, c, d, e, f); CREATE UNIQUE INDEX i1 ON parent(c, d); CREATE INDEX i2 ON parent(e); CREATE UNIQUE INDEX i3 ON parent(f COLLATE nocase); CREATE TABLE child1(f, g REFERENCES parent(a)); -- Ok CREATE TABLE child2(h, i REFERENCES parent(b)); -- Ok CREATE TABLE child3(j, k, FOREIGN KEY(j, k) REFERENCES parent(c, d)); -- Ok CREATE TABLE child4(l, m REFERENCES parent(e)); -- Error! CREATE TABLE child5(n, o REFERENCES parent(f)); -- Error! CREATE TABLE child6(p, q, FOREIGN KEY(p, q) REFERENCES parent(b, c)); -- Error! CREATE TABLE child7(r REFERENCES parent(c)); -- Error!
訂閱:
文章 (Atom)