1 接入錯誤
1.1 從GitHub上導入Android Studio(gradle)版本Demo后報錯
導入Android Studio(gradle)版本Demo后報錯,如下圖:
按照錯誤提示配置工程中Android SDK的路徑或設置對應的本地環境變量。
1.2 編譯時出現大量報警信息
集成推送SDK后在編譯過程中有如下大量的警告信息:
這是由于SDK為兼容用戶集成編譯環境,采用了較低版本編譯器導致,上述警告信息不會影響功能的正常使用。
1.3 建項目報錯:”AGPBI: {“kind”:”error”,”text”:”warning…”
在集成移動推送SDK進行項目構建時如出現:
AGPBI: {"kind":"error","text":"warning: Ignoring InnerClasses attribute for an anonymous inner class","sources":[{}]}
進行如下操作進行gradle配置同步:
Tools -> Android -> Sync Project with Gradle Files
1.4 移動推送的ut/utdid包和其他阿里SDK產生沖突
移動推送的ut/utdid包和其他阿里S產生沖突怎么解決?如出現類似以下沖突:
duplicate entry: com/.../utdid2/device/UTDevice.class
由于ut/utdid包是阿里云產品的基礎組件,阿里云很多產品SDK都需要集成。如果一個項目中集成了多個阿里云產品就有可能產生沖突。
首先,找到沖突的SDK所在位置,比較兩個版本,保留其中一個,為了保證組件的兼容性,建議保留高版本的ut/utdid包;也可以根據項目中的需求進行斟酌保留。
2. 運行錯誤
2.1 初始化時報init cloudchannel failerr:10102 - message:參數無效:illegal package for **
推送SDK初始化時報如下錯誤:
init cloudchannel failerr:10102 - message:參數無效
出現上述問題的原因是您在控制臺配置的APP PackageName、AppKey、AppSecret與您的工程中的ApplicationID、AppKey、AppSecret不一致導致的。請重新檢查,確保工程配置和控制臺中的App配置一致。
2.2 推送在初始化時報”java.lang.UnsatisfiedLinkError”或”TNET-JNI-LOAD-SO-FAIL“錯誤
推送SDK包含有so包(libtnet、libcocklogic),出現上述錯誤都是由于so包沒有被成功加載導致的。請通過以下方法確認so包是被被正常添加。
詳細配置文檔可參考:移動推送Android SDK:推送在初始化時報”java.lang.UnsatisfiedLinkError”或”TNET-JNI-LOAD-SO-FAIL“錯誤,這是什么原因引起的?
2.3 集成SDK后運行App報java.lang.NoClassDefFoundError
接入了移動推送SDK,運行時報出java.lang.NoClassDefFoundError找不到某個類,但SDK中明明包含這個類,為什么會這樣?
如果您的App工程使用了multidex架構,可能會出現java.lang.NoClassDefFoundError,原因在于:推送SDK由于需要在application中進行初始化,所以相關類需要被放到MainDex文件中,否則在app啟動時可能會報錯。
具體解決方案可參考:移動推送Android SDK:集成SDK后運行App報java.lang.NoClassDefFoundError該如何解決
2.4 項目啟動后報Could not find class *****
集成推送SDK后,在初始化的過程中會報類似如下錯誤:
Could not find class 'com.taobao.accs.utl.h$a', referenced from method com.taobao.accs.inteernal.ACCSManagerImpl.bindApp
該錯誤消息是因為SDK在初始化過程中無法找到相關類,這部分類不是推送SDK的必須類,公共版SDK為減小SDK大小并未將相關類打入SDK中。缺少相關類不會影響推送功能的正常使用,請放心使用。