1. 程式人生 > >Tinker整合步驟和整合中所需要的問題

Tinker整合步驟和整合中所需要的問題

整合Tinker所需要的問題:
1,複製demo中的build.gradle 修改完成以後出現

Error:(9, 0) Could not get unknown property 'TINKER_VERSION' for object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.
<a href="openFile:C:\Users\Quentin\Desktop\WorkSpace\As_WorkSpace\TinkerDeni\app\build.gradle">Open File</a>

該問題是沒有在專案下 gradle.properties 裡面配置 Tinker版本號 ex: TINKER_VERSION=1.7.3

2,sync後出現
Error:(34, 0) Cause: can’t get git rev, you should add git to system path or just input test value, such as ‘testTinkerId’
Open File
無法獲取到testTinkerId ,

3,
Error:A problem occurred configuring project ‘:app’.

Tinker does not support instant run mode, please trigger build by assembleDebug or disable instant run in ‘File->Settings…’.

意思是說Tinker不支援 install run 模式,請手動 build assembleDebug 或者把 install run 模式禁用掉。

gradle assembleDebug 
                    apk路徑:C:\Users\Quentin\Desktop\WorkSpace\As_WorkSpace\TinkerDeni\app\build\bakApk
gradle tinkerPatchDebug
                    生成apk 路徑 :
                    C:\Users\Quentin\Desktop\WorkSpace\As_WorkSpace\TinkerDeni\app\build\outputs\tinkerPatch\debug\patch_signed_7zip.apk

另外一種方式:點選Android studio 右側的Gradle的標籤。生成基礎的apk(可生成Debug版本或者正式版本)
這裡寫圖片描述

生成差異包(同樣,可以生成Debug版本或者正式版本,需要兩者對應上

這裡寫圖片描述

整合步驟 :

    1,在專案下的build.gradle 檔案 dependencies  中 新增 tinker的依賴 
            ex:
                classpath ('com.tencent.tinker:tinker-patch-gradle-plugin:1.7.7')

    2,因為引入Tinker的版本變數所以在gradle.properties中加入    ex:TINKER_VERSION=1.7.7 

    3,複製tinker官方Demo中的build.gradle檔案,覆蓋裡層的build.gradle,
    把重要的東西(如依賴,編譯版本等)複製到最新的gradle當中.
          a.新增自己原本需要的依賴
          b.更改自己的安卓相應版本和一些其他資訊  
          c.配置自己的簽名 
          異步出現錯誤,修改tinkerId,改為使用versionName
                   return android.defaultConfig.versionName

    4,複製tinker官方Demo中的所有檔案


    5,修改SampleApplicationLike上方Application為自己本地的註釋,先寫一個名字,執行之後會自己出現,報錯不用管
          新增官方Demo中提供的service服務 

    6,新增讀寫許可權 
                <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
                <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>