uniapp 離線打包android 高德地圖 定位 uni.getLocation 就看這一篇就夠了

確實走了不少彎路陋桂,填了不少坑逆趣,為了防止老年健忘癥的復發(fā)。在這里記錄下來嗜历,也方便有緣人宣渗,結(jié)個善緣。

第一步梨州,創(chuàng)建 【SHA1】安全碼 參考

  1. 安裝java環(huán)境 痕囱,下載jdk 安裝 并配置下環(huán)境變量...(此處省略1萬字)
  2. cmd 或 git 控制臺輸入創(chuàng)建key的命令,創(chuàng)建證書
testalias: 證書別名(自定義)
test.keystore   證書文件名(自定義)

keytool -genkey -alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore test.keystore  
1.png

git下 在哪里創(chuàng)建證書暴匠, 證書就創(chuàng)建在哪里


創(chuàng)建的證書文件
  1. 查看keystore ,git下 在哪里創(chuàng)建證書鞍恢, 證書就創(chuàng)建在哪里
keytool -list -v -keystore test.keystore  
Enter keystore password: //輸入密碼,回車 
2.png

第二步每窖,配置打包項目

  1. uniapp官方android打包文檔帮掉,下載打包環(huán)境

    • 安裝 andro studio
    • 下載 最新 android平臺 sdk
    • 安裝 HBuilderX
  2. 將下載的SDK文件解壓,只有紅圈的兩個有用


    SDK
  3. 打開 android studio


    android studio
  4. 官方文檔有兩種打包方式岛请,這里使用官方提供的第二種方式旭寿,
    HBuilder-Integrate-AS是已經(jīng)配置好的打包項目,用Android Studio 引入該項目

  5. 打開之后發(fā)現(xiàn)下載gradle-6.5-bin.zip文件很慢崇败, 點擊左下角紅色方塊取消下載盅称, 點擊紅圈處的鏈接手動下載文件。

    gradle-6.5-bin.zipg

  6. 下載gradle-6.5-bin.zip 完成后室,將該文件放在任意目錄缩膝,一般都放在項目公共配置的目錄里 比如 maven jdk 等。

  7. 在項目下的 gradle/wrapper/gradle-wrapper.properties 中設置一下

distributionUrl=file:///D:/文件存放目錄/gradle-6.5-bin.zip
gradle-6.5-bin.zip
  1. 選擇 File -> Sync project with Gradle Files

    Sync project with Gradle Files

  2. 安裝成功后 Buid -> Build Bundle(s) / APK(s) 可以看到岸霹,否則是沒有此項的疾层,這是之后打包用的

    Buid

  3. 修改以下兩處包名,后面使用HBuilderX中項目manifest.json中的uni-app的唯一標識(AppID)UNIXXXXXX
    io.dcloud.UNIXXXXXX

    包名

  4. 有了 SHA1 和包名 去申請 高德地圖的 key


    高德地圖
高德地圖
  1. HBuilderX 項目 amifest.json 設置高德地圖的key
    高德地圖的key

    選擇 發(fā)行 -> 原生App 本地打包 -> 生成本地打包app資源
    生成本地打包app資源
生成本地打包文件目錄
  1. 將本地打包文件拷貝到下圖目錄中


    21.png
  2. 修改 data/dcloud_control.xml 文件中的 appid 保持一致


    appid
  3. 按照官方文檔 將 sdk目錄下的 3個包拷貝到libs 目下 具體作用看官文

-  uniapp-v8-release.aar  // uniapp 用
-  `amap-libs-release.aar`  // 高德地圖用
-  `geolocation-amap-release.aar` //高德地圖用
bao
  1. 官文 AndroidManifest.xml 中填入

    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
    <uses-permission android:name="android.permission.READ_LOGS" />
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
  
  // 注釋的這段標識在它的前面加入上面的代碼
  
 <!--    <application-->
<!--        android:allowBackup="true"-->
<!--        android:allowClearUserData="true"-->
<!--        android:icon="@drawable/icon"-->
<!--        android:label="@string/app_name"-->
<!--        android:largeHeap="true"-->
<!--        android:supportsRtl="true">-->
        // 下面的代碼加入application 之后
            <meta-data
            android:name="com.amap.api.v2.apikey"
            android:value="高德申請的key寫在這里"></meta-data>
        <service android:name="com.amap.api.location.APSService"></service>
  

  1. 另外 注意 在 AndroidManifest.xml
    android:authorities="io.dcloud.UNICXXXXXX.dc.fileprovider"
    一樣 改成一致的包名
<provider
            android:name="io.dcloud.common.util.DCloud_FileProvider"
            android:authorities="io.dcloud.UNICXXXXXX.dc.fileprovider"
            android:exported="false"
            android:grantUriPermissions="true">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/dcloud_file_provider" />
</provider>
  1. build.gradle 中 加入自定義的證書簽名代碼贡避,否則手機安裝apk后無法定位
    會提示 key 錯誤
    30.png

    證書簽名同樣也可以在 File -> Project Structure... 中配置
    31.png

第三步痛黎, 配置完成

執(zhí)行 `Buid` -> `Build Bundle(s) / APK(s)`  -> `Build APK(s) ` 安裝到手機測試吧 
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末予弧,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子湖饱,更是在濱河造成了極大的恐慌掖蛤,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件井厌,死亡現(xiàn)場離奇詭異蚓庭,居然都是意外死亡,警方通過查閱死者的電腦和手機仅仆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進店門器赞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人墓拜,你說我怎么就攤上這事港柜。” “怎么了撮弧?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵潘懊,是天一觀的道長。 經(jīng)常有香客問我贿衍,道長授舟,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任贸辈,我火速辦了婚禮释树,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘擎淤。我一直安慰自己奢啥,他們只是感情好,可當我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布嘴拢。 她就那樣靜靜地躺著桩盲,像睡著了一般。 火紅的嫁衣襯著肌膚如雪席吴。 梳的紋絲不亂的頭發(fā)上赌结,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天,我揣著相機與錄音孝冒,去河邊找鬼柬姚。 笑死,一個胖子當著我的面吹牛庄涡,可吹牛的內(nèi)容都是我干的量承。 我是一名探鬼主播,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼撕捍!你這毒婦竟也來了拿穴?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤卦洽,失蹤者是張志新(化名)和其女友劉穎贞言,沒想到半個月后斜棚,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體阀蒂,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年弟蚀,在試婚紗的時候發(fā)現(xiàn)自己被綠了蚤霞。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡义钉,死狀恐怖昧绣,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情捶闸,我是刑警寧澤夜畴,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站删壮,受9級特大地震影響贪绘,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜央碟,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一税灌、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧亿虽,春花似錦菱涤、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至收毫,卻和暖如春攻走,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背牛哺。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工陋气, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人引润。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓巩趁,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子议慰,可洞房花燭夜當晚...
    茶點故事閱讀 44,592評論 2 353

推薦閱讀更多精彩內(nèi)容