Unity(十三) 研究Unity獲取Android手機電量、WIFI心得《之一》

PS:花了兩天時間,基本上都是在試坑,終於還是有了收穫,簡單總結一下

首先感謝作者這份很重要的工程讓我不再懷疑人生:https://github.com/JingFengJi/PhonePower.git (工程裏含APK文件)

Unity5.5.2f1 版本     JavaEclipse

 

功能部分參考兩篇博客沒問題,需要注意(原作者截圖存在問題)

參考1鏈接:https://blog.csdn.net/qq_26999509/article/details/78444163  獲取手機電量信息、網絡狀況

參考2鏈接:http://www.cnblogs.com/wuzhang/p/wuzhang20170318.html#commentform    Unity獲取安卓手機運營商,電量,wifi信號強度,本地Toast

 

個人建議:

a確保unity打包APK正常,jar有問題導入後可能就無法打包了

b獲取電量WIFI功能參考上面鏈接,出問題了讀下面我標註的坑

 

問題列表:

這裏以本人建立的基礎工程爲例說明

注意Theme !!!

如果你是按照原文作者截圖創建Project,看到Theme(這裏可能出問題)

 

說明:在5.5版本中打包支持最小API level9 ,這個Theme是不支持這個API Level的。

解決辦法:Theme選擇Holo Light 或者修改AndroidMainfest文件裏的Theme直接刪除

 

本人MinimumSDK選擇API14 以上,Target選擇了18 。打開value文件夾裏看到下圖,這樣打包jar是可以的

因爲這個Theme導出jar到Unity一打包就報錯,如下。耽誤了很多時間,如果仔細分析log信息就會發現是Theme問題

CommandInvokationFailure: Failed to re-package resources.
D:\Android\sdk\build-tools\28.0.3\aapt.exe package --auto-add-overlay -v -f -m -J "gen" -M "AndroidManifest.xml" -S "res" -I "D:/Android/sdk\platforms\android-28\android.jar" -F bin/resources.ap_ --extra-packages com.example.test.resources -S "D:\WorkSpace\UnityProject\Test02\Temp\StagingArea\android-libraries\unity-android-resources\res"

stderr[
D:\WorkSpace\UnityProject\Test02\Temp\StagingArea\android-libraries\unity-android-resources\res\values\styles.xml:7: error: Error retrieving parent for item: No resource found that matches the given name 'Theme.AppCompat.Light'.

D:\WorkSpace\UnityProject\Test02\Temp\StagingArea\android-libraries\unity-android-resources\res\values-v11\styles.xml:7: error: Error retrieving parent for item: No resource found that matches the given name 'Theme.AppCompat.Light'.
一定注意看error信息,網上查了很多解決辦法,也是“”一千個讀者有一千個哈姆雷特“”,每個人遇到的問題雷同卻不一樣,解決辦法不一定適用自己

當我解決掉這個問題後,其他都沒了,沒其他騷的操作。開心

 

以下爲溫馨提示:

Eclips可以建一個空的簡單工程

其中導入class.jar參考鏈接兩種方法應該都是可以的,但是必須說明一下。

選對了目錄位置才能在工程右鍵看到BuildPath-->Add External Archives這個選項,如圖

 

 

坑總結:

1:首先確保Unity能正常打包,因爲配置打包環境這一環節就很容易出問題。其次檢查jar裏的AndroidMainfest文件問題

2:注意看log 問題描述可能很清晰了,網上類似的別人解決問題可能是方方面面的設置等,例如sdk/jdk問題等

3:選擇低版本的JAVA JDK8.其次安裝Android Studio的sdk時一定改到D盤,否則在SDKManager下載對應API等會佔用大量空間(我筆記本C盤撐爆了,在測試坑的時候)。

4:後續增加新功能,只需導出jar後連同AndroidMainfest文件一起替換掉Unity裏的即可

   2017版本成功打包APK獲取Wifi信息過一次,後來一直失敗,暫未找出原因。和老的Unity5.5/5.6版本對比多了個打包Gradle模式,這裏還是選擇舊的Internal打包

  目前測試5.5.版本一直成功(參考原作),5.6.7版本看到MinimumSDK API和2017一樣.推測是Unity安裝目錄下的AndroidMainfest文件支持的API有關

 

如果Unity打包APK配置環境有問題參考我的這篇文章 https://mp.csdn.net/postedit/89715915 

 

關於安卓Theme的講解  https://www.jianshu.com/p/6ad7864e005e

 

雲盤鏈接:

1:JavaEclipse文件包 https://pan.baidu.com/s/1lXZRDkxu5bfitxyUjFdVEg 提取碼:0fa7      (筆者自己備份,勿下載)

2: 關於JavaEclipse.exe在安卓sdk同級目錄,若沒有參考https://mp.csdn.net/postedit/89715915 我的這篇文章下載即可

 

綜上功能已實現,總結一下。下一篇文章來個完整流程及拓展功能。

有問題請留言哦

 

~願你堅持自己,願你相信自己,願你認真仔細,願你更加強大

~行成於思毀於隨。好記性不如爛筆頭

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章