發表文章

目前顯示的是 8月, 2016的文章

Unsupported major.minor version 52.0 報錯

其一 一般來說,Unsupported major.minor version 52.0出現時,為什麼會有這個錯誤呢?這是java版本的問題,52.0是主要版本號.次要版本號(major.minor)。每一個被編譯程式都會有其適用的版本號的資訊,可以用 javap -verbose XXXX 就可以看到適用的版號。如果不是目前JDK的適用範圍,當我們執行時就會出錯了。 我們可以在terminal中打上 java -version 看看目前的java 版本 要轉移平台或環境,確認版本有其必要。 我們可以先用 jdk 1.8 編釋一個小程式,然後再把jdk換成1.7執行看看,就會出現 Unsupported major.minor version 52.0 所以我們可以在 https://en.wikipedia.org/wiki/Java_class_file#General_layout 找到各版本支援的版本號,這樣就不會弄錯了。簡單記錄一下。 java SE 9 = 53 (0x35 hex), Java SE 8 = 52 (0x34 hex), Java SE 7 = 51 (0x33 hex), Java SE 6.0 = 50 (0x32 hex), Java SE 5.0 = 49 (0x31 hex), JDK 1.4 = 48 (0x30 hex), JDK 1.3 = 47 (0x2F hex), JDK 1.2 = 46 (0x2E hex), JDK 1.1 = 45 (0x2D hex). 其二 在android studio上可能就是compileSdkVersion跟buildToolVersion版本有所不同。如下,將兩者改為一樣的版本 24,問題即可解決。 android{ compileSdkVersion    24 buildToolVersion         24.0.1

Element animation-list must be declared 報錯

Element animation-list must be declared Android Studio 對於資源的放置位置有比較嚴重的定義。原先 <? xml version= "1.0" encoding= "utf-8" ?>   <animation-list android :id= "@+id/find_people_anim"   android :oneshot= "true" xmlns: android = "http://schemas.android.com/apk/res/android" > <item android :drawable= "@drawable/findpeople1" android :duration= "500" />    <item android :drawable= "@drawable/findpeople2" android :duration= "500" />    <item android :drawable= "@drawable/findpeople3" android :duration= "500" />    <item android :drawable= "@drawable/findpeople4" android :duration= "500" />   <item android :drawable= "@drawable/findpeople5" android :duration= "500" /> </animation-list> 這個資源都是放在anim的資料匣下,這樣是不行的。所以改放在drawable下,即可解決。

Firebase 與 AdMob

圖片
啊!平台跟通路真的是王道啊!叫你往東,就得往東。 從eclipse轉到android studio看樣子是在所難免。連analytics, admob也都跟firebase整合了。也就是說未來轉到firebase也是在所難免。不過也有好處,整合的功能不少。有空就一一來寫。 如果是要結合admob https://firebase.google.com/docs/admob/android/quick-start 我們重點的跑一遍 第一點改 App - level build.gradle 第二點改 Project-level build.gradle       第三點找出 本來ADMOB的廣告單元編號,記得要先跟firebase連結,就會出現最下方的廣告單元編號與舊版發佈商編號。 在參閱設定操作說明中有 應用程式編號 ,我們可以看到後面xxxxxx~nnnnnnnn有一個 ~ 的符號。 廣告單元編號 是xxxxxxx/nnnnnnn有一個 / 的符號。不要搞混了。 提醒使用者要一個activity就申請一個廣告單元。  貼心提示使用者可以把很多的id都放在resource中,如下  第三點,程式跟之前大同小異 重點是呼叫廣告前要先執行  MobileAds.initialize....如下,記得後面的編號是  應用程式編號!! 然後在xml中,廣告編號可xml中加,也可以在 activity 中  A dView.setAdUnitId( "ca-app-pub-2831471Xxxxxxx/9nnnnnnnn" );    或從resource中 ADView.setAdUnitId(getString(R.string.XXXXX)); 主程式 這樣就可以了…我還有遺漏什麼…咦… 對…json 先到 firebase console     https://console.firebase.google.com/ 照指示新增,或是匯入google應用,就可以看到如下 選擇紅框中->管理 下載google-services.json, 將

finished with non-zero exit value

又來了... finished with non-zero exit value 1 這個容易解,從錯誤訊習中可以找到問題。 finished with non-zero exit value 2 從eclipse轉到android studio容易發生,這個是jar的衝突。即然用了gradle來編譯程式,就要把libs中的jar通通砍了。 finished with non-zero exit value 3 記憶體不足。用這個 android { // Other stuffs dexOptions { javaMaxHeapSize "4g" } }

討厭… ADB not responding. You can wait more,or kill “adb.exe” process manually and click 'Restart'

圖片
google 今年又發表了很多新東西,使得原本使用eclipse的人慢慢的要轉移平台到android studio來。一開始就遇 adb 的問題,然後android studio提示要kill adb,如下 看過網路上的諸多作法,adb kill-server,然後 adb start-server。只要看到出現訊息 daemon started successfully,就成功了。 如果不是呢?出現 WSAPOLL找不到輸入點之類的,就找一版舊的adb.exe來把android studio所使用的 adb.exe 取代掉即可。 突然想到在c糟中還有一份android-adk,趕快去找 android-sdk 底下的 platform-tools底下的adb.exe。直接copy,然後取代了android studio的adb.exe… 終於解決。