Android關於友盟推送 與百度地圖、阿里支付的衝突解決問題

1.首先 確認 我們的百度地圖 還有友盟推送 以及 阿里支付 獨自單個項目運行是 正確的 可運行的。
在這裏 我只是簡單的 提幾點:
1.1 百度地圖 注意點:
a. SHA1值的獲取,現在大家開發環境 都是 AndroidStudio了 所以每個項目 都有對應的簽名 而百度地圖SHA1值的獲取 是對 你這個項目的簽名文件 進行的獲取,而不是 系統默認的那個簽名文件
這裏寫圖片描述
應該是我們自己生成的簽名文件 這裏寫圖片描述
至於 AS中 簽名文件的 生成 這個自行百度吧。
b.百度地圖引入好多so文件,這個時候 我們要在app下的build.gradle 中加入如
下代碼:

注意要和 buildTypes{}並列

 sourceSets {
        main {
            jniLibs.srcDirs = ['libs']
        }
    }

1.2 阿里支付
主要是 對 幾個值的獲取 這裏寫圖片描述 注意阿里的網址是https://b.alipay.com/index.htm 進入裏面的商家中心,簽約管理 簽約平臺 進行 這幾個值的獲取

1.3友盟推送
主要是 對這幾個值的獲取這裏寫圖片描述 關於這個值的獲取 很簡單 直接 去友盟開發平臺 把你的應用的 包名加入進去 就可獲得

2.衝突問題
2.1關於 友盟推送 和百度地圖的衝突
表現形式:

01-13 11:19:33.770 18204-18204/? E/art: No implementation found for int com.baidu.platform.comjni.map.commonmemcache.JNICommonMemCache.Create() (tried Java_com_baidu_platform_comjni_map_commonmemcache_JNICommonMemCache_Create and Java_com_baidu_platform_comjni_map_commonmemcache_JNICommonMemCache_Create__)
01-13 11:19:33.774 18204-18204/? E/AndroidRuntime: FATAL EXCEPTION: main
                                                   Process: com.xtrd.baidumaptest, PID: 18204
                                                   java.lang.UnsatisfiedLinkError: No implementation found for int com.baidu.platform.comjni.map.commonmemcache.JNICommonMemCache.Create() (tried Java_com_baidu_platform_comjni_map_commonmemcache_JNICommonMemCache_Create and Java_com_baidu_platform_comjni_map_commonmemcache_JNICommonMemCache_Create__)
                                                       at com.baidu.platform.comjni.map.commonmemcache.JNICommonMemCache.Create(Native Method)
                                                       at com.baidu.platform.comjni.map.commonmemcache.a.a(Unknown Source)
                                                       at com.baidu.platform.comapi.c.c.b(Unknown Source)
                                                       at com.baidu.mapapi.a.c(Unknown Source)
                                                       at com.baidu.mapapi.SDKInitializer.initialize(Unknown Source)
                                                       at com.baidu.mapapi.SDKInitializer.initialize(Unknown Source)
                                                       at com.xtrd.baidumaptest.BaiduTestApp.onCreate(Unknown Source)
                                                       at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1012)
                                                       at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4553)
                                                       at android.app.ActivityThread.access$1500(ActivityThread.java:151)
                                                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364)
                                                       at android.os.Handler.dispatchMessage(Handler.java:102)
                                                       at android.os.Looper.loop(Looper.java:135)
                                                       at android.app.ActivityThread.main(ActivityThread.java:5254)
                                                       at java.lang.reflect.Method.invoke(Native Method)
                                                       at java.lang.reflect.Method.invoke(Method.java:372)
                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:915)
                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:702)

問題導致原因1. bulid.gradle 是少了這句話 sourceSets {main { jniLibs.srcDirs = [‘libs’]}}2.百度地圖so文件 和友盟推送so文件 衝突
解決方法是:將bulid.gradle 文件中加上上述那句話 ,然後將友盟推送lib中的so文件 全部刪掉。 親測 ,友盟推送還可以接收到推送,百度地圖也可以正常運轉。

2.2 關於友盟推送和 支付寶的 衝突
表現形式:
gradle編譯報如下錯誤 錯誤原因是 包重複導入 和帶入重複的包的版本不同

Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'D:\programfiles\Java\jdk1.7.0_71\bin\java.exe'' finished with non-zero exit value 2

解決方法:
友盟推送 用 取Uat的包 com.umeng.message_v2.8.1L_Beta.jar 而不是 這個com.umeng.message_v2.8.0.jar。

至此 結束 。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章