1. 程式人生 > 其它 >Flutter 基礎知識和常見問題記錄

Flutter 基礎知識和常見問題記錄

技術標籤:Flutterflutter

Flutter使用過程中遇到的問題

基礎知識

總有一些知識,你看著吧,簡單!用著的時候吧,忘了,那就把這些又愛又氣的傢伙記錄在這裡吧 !!!

新的改變

Alt

容易碰到的報錯

Running Gradle task ‘assembleDebug’…

 這個問題遇到概率賊高,至少我是這個樣子的,看似簡單,卻經常忘記。

原因 是因為Gradle的Maven倉庫在國外, 因此需要使用阿里雲的映象地址。

maven { url ‘https://maven.aliyun.com/repository/google’ }
maven { url ‘https://maven.aliyun.com/repository/jcenter’ }
maven { url ‘http://maven.aliyun.com/nexus/content/groups/public}

在哪裡修改應該知道的吧!還是提一下,android/build.gradle 檔案

如上述還是沒有解決你的問題,升級gradle版本或可一試,別人說的,沒有驗證哦。

專案無法執行解決方案

  你或許會因為下面原由而專案無法執行:
  1. 專案因刪除某些檔案(如:android資料夾、ios資料夾等)導致專案無法執行;
  2. 拉取git庫專案出現莫名奇妙的原因無法執行;
  3. 直接拷貝別的電腦上可執行的專案,但是在自己電腦上無法執行;

解決方案:

需要注意的是:以下操作會刪除Android 和 iOS 中的一些配置和初始化設定
  1. 需要刪除自動生成的檔案重新生成

  2. 只保留 :

    1 assets -->資原始檔,或者自定義的資原始檔 .
    2 lib --> Flutter程式碼模組
    3 pubspec.yaml --> Flutter 配置檔案
    4 .gitignore 檔案

  3. 執行重新生成命令:

    flutter create .

  4. 若執行完重新生成檔案後測試test資料夾內檔案報錯可直接刪除。

  5. 更加詳細參考文件:

    連結地址

百度地圖定位:第一次定位成功之後 再次定位一直返回:505 錯誤

報錯資訊如下:

I/flutter ( 7891): { callbackTime: 2020-12-15 15:53:08, errorCode: 505, 
                     errorInfo: NetWork location failed because baidu location service check the key is unlegal, 
                     please check the key in AndroidManifest.xml !}

造成的原因主要有兩個:

  1. 本專案使用的包名和百度地圖裡申請時使用的包名不一致。
  2. 本專案使用的祕鑰和百度地圖裡申請時使用的祕鑰引數值不同。

此處主要記錄一下問題2的解決。

解決方案:

  1. 獲取當前應用的祕鑰資訊進行驗證。
  2. 應用啟動時,在logcat中會有鑑權錯誤資訊可以幫到你。
    =============================================
     ----------------- 鑑權錯誤資訊 ------------
     sha1;package:50:5E:B1:CA:52:5C:C5:15:6C:CF:65:A4:B6:5A:37:29:62:09:62:B3;com.example.test
     key:kDekSA3sVGT7kEQkfRjAqamBoNMI4dUa
     errorcode: 230 uid: -1 appid -1 msg: APP Mcode碼校驗失敗
     請仔細核查 SHA1、package與key申請資訊是否對應,key是否刪除,平臺是否匹配
     errorcode為230時,請參考論壇連結:
     http://bbs.lbsyun.baidu.com/forum.php?mod=viewthread&tid=106461
     =============================================
    
  3. 再檢視當前應用app/build.gradle中是否進行了祕鑰加密,如果沒有則當前應用使用的是本電腦自動生成的初始祕鑰,修改成為本應用專屬的祕鑰即可。

獲取申請百度地圖key所需的SHA1值:

  • 獲取debug的SHA1值(電腦自動生成的值)

    • 開啟cmd,輸入:

      cd .android
      keytool -list -v -keystore debug.keystore

    • 輸入祕鑰庫口令,預設的就是:andorid ;回車既可以看到SHA1的值了;

  • 獲取release的SHA1的值(這個是重點)

    • 開啟cmd,輸入:

      cd .android
      keytool -list -v -keystore 你自己的打包用到的keystore的路徑

    • 輸入祕鑰庫口令。