我是初學(xué)者小白,所以很多看法不深,理解也不夠透徹。但是很適合小白們一起從低角度往高處探索。文中有錯誤的,感謝指正,一起進步。
成都創(chuàng)新互聯(lián)公司主要從事成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)固原,10年網(wǎng)站建設(shè)經(jīng)驗,價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575
趁著假期做一個Flutter的地圖功能,因為后端選用了百度地圖,所以前端沒得挑。找了遍插件,并沒有現(xiàn)成可用的。(不過發(fā)現(xiàn)了百度官方也自開發(fā)Flutter插件,目前功能只有一個獲取本地位置信息,后期會繼續(xù)增加吧?很期待?。?/p>
參考帖子:
這個實際上跟功能之間沒太大關(guān)系,只是我按照個人摸索的過程來寫。
當(dāng)對一個“領(lǐng)域/知識塊”完全不懂的時候,360°的方向都不確定的話。先了解基礎(chǔ)概念,有利于你確定自己的摸索方向。
參考帖子:
中間我跳過了幾十,上百個帖子的摸索過程。這個才是關(guān)鍵能夠真正做事的參考。
因為百度的sdk還算是很完善的,所以一旦出問題,都會有對應(yīng)的報錯提示。
我是使用flutter插件:permission_handler,來解決安卓的動態(tài)授權(quán)問題,用法簡單而且設(shè)計合理。
這個錯誤直接來看,就是簽名有問題。怎么查看SHA1碼和包名,這里不多說,網(wǎng)上有極其多的方法,百度Sdk開發(fā)指南里也有。沒那么復(fù)雜,也沒那么麻煩。按照流程操作就是對的。
實在不放心?跟我一樣,flutter打包后,把apk反過來解SHA1碼不就行了?
參考帖子:
紅色框框基本就是帖子講解的那樣。
藍色框框見下圖:release標(biāo)簽里好像是自己設(shè)置了。所以debug標(biāo)簽里面,箭頭指向的位置,是我多設(shè)置的一個參數(shù)。
uid: -1 appid -1 msg: httpsPost failed,IOException:Unable to resolve host "api.map.baidu.com": No address associated with hostname
這一步我是哭笑不得,一開始老是和問題(2)混淆,導(dǎo)致浪費很多時間。仔細閱讀后,發(fā)現(xiàn)是不能連接到“api.map.baidu.com”。
我打開模擬器的chrome瀏覽器,發(fā)現(xiàn)不能上網(wǎng)。查看手機的dns是10.0.2.3(默認的),和家里wifi不一樣,所以不能上網(wǎng)也正常,之前居然沒發(fā)現(xiàn)這個問題?。?!
終端執(zhí)行:adb shell? 和? getprop,就可以查看所有的屬性參數(shù)了。(window小伙伴自行百度,這個沒多大差別。如果你有多個設(shè)備,記得自己選好設(shè)備。)
在里面找到這一項,就是你的dns參數(shù)。有些人是net.dns1,我的是net.eth0.dns1。這個沒關(guān)系,只是等下指令 稍微改動 就行。
修改dns指令:setprop net.eth0.dns1 192.168.2.1
后面的192.168.2.1是我自己的dns,這個根據(jù)自己的情況來填寫。不懂的百度下怎么查看自己的dns。
雖然提示設(shè)置失敗,但是回到模擬器一看,地圖已經(jīng)顯示出來了。
嘿嘿,在flutter設(shè)定多大的區(qū)域,地圖就是多大的區(qū)域。用起來就很方便了。
過程十分痛苦,因為對flutter不是很熟悉,對Android原生更是了解很少。所以自己就像突然不能講話,被丟到一個陌生的環(huán)境,卻要我去找一個人。所以細心很重要,一定要看清楚錯誤提示,不要錯過每一個細節(jié)和可能性。
幸好最后解決了問題,開心~
其實如果你仔細閱讀過百度官方的文檔,會發(fā)現(xiàn)里面有關(guān)于 地圖的生命周期管理 。然后在這里面沒有提及到,這一點雖然沒提,但不可或缺,小伙伴就自行思考吧。
最后還有一點,其實我的初衷是想實現(xiàn)一個百度地圖的plugin,但是苦于能力有限,對Android的不熟悉,最后折戟。我不得已另起項目,然后重新實現(xiàn)地圖sdk接入。經(jīng)過這次對于這些有更多更全面的認知后,有空會再次研究flutter 插件的開發(fā),共勉,奧利給?。?!
如圖所示,F(xiàn)lutterPlugin中Android模塊引用 flutter.jar 內(nèi)容報紅:
這是由于 flutter.jar 沒有被引入造成的,處理方式分為以下三個步驟:
截圖示例:
點擊Sync按鈕重新編譯即可
問題原因:版本大小原因
解決方案:點擊ios文件夾-點擊podfile修改如下(親測實用已解決)
解決方案:
刪除IOS工程中的Podfile.lock文件,重新pod install(繼續(xù)執(zhí)行Flutter run操作)即可解決。
問題原因:沒有配置safety相關(guān)
解決方案:可以直接在命令行中執(zhí)行:
然后在Additional run args 這行鍵入一下命令即可。
問題原因:xcode版本更新導(dǎo)致的
解決方案:將爆紅處一行隱藏,運行,點擊fix即可,會顯示正確位置就解決了。
解決方法:
1、找到第一個爆紅文件,將311行問號后面的Colors.white刪除即可
2、 在相同的文件夾內(nèi)找到第二個爆紅文件,找到106行,刪除super.addAllowedPoint這一行即可。
造成原因分析:還不清楚
群友幫助:經(jīng)常出現(xiàn),重啟電腦多試試
解決方案:暫未找到
分享題目:flutter紅點的簡單介紹
轉(zhuǎn)載注明:http://www.rwnh.cn/article42/dsigihc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、移動網(wǎng)站建設(shè)、軟件開發(fā)、網(wǎng)站制作、標(biāo)簽優(yōu)化、自適應(yīng)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)