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。

至此 结束 。

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