Coder Social home page Coder Social logo

multifunctionandroiddemo's Introduction

【友盟+】统计、推送、分享三合一组件化SDK集成Demo

重要更新:增加用户授权隐私协议友盟sdk初始化逻辑,具体请查看SplashTestActivity

本项目仅提供离线包依赖方式集成示例。

如果您是采用maven库在线依赖相关友盟SDK,请参考如下Demo工程

apm SDK集成示例工程,请参考 APM Demo


集成升级必读(Android)

1. 统计SDK 9.3.0版本不能和低版本推送、分享SDK混用。混用可能导致不可预知后果(例如:崩溃,无数据等)。

下表列出统计SDK 9.3.0支持的各业务SDK最低版本,请确保App中配合9.3.0统计SDK集成的各业务SDK版本号满足下表要求。

推送SDK 分享SDK 游戏统计SDK 智能登录SDK
>= v6.2.0 >= v7.1.0 >= v9.2.0+G >= v1.4.0

2. 集成本版本SDK 请务必在混淆时增加:-keep class com.uc.** {*;}

3. 集成移动统计时,如果App不能保证在Appcalition.onCreate函数中调用UMConfigure.init初始化函数 请查看https://developer.umeng.com/docs/119267/detail/118588#h3-u9884u521Du59CBu5316

4. 集成移动统计时,如果开发者调用kill或者exit之类的方法杀死进程,请查看,https://developer.umeng.com/docs/119267/detail/118637#h1-u5176u4ED6u529Fu80FD6

5. 如集成移动统计后无数据,请查看https://developer.umeng.com/docs/119267/cate/121449

6. 详细升级文档,请查看:https://developer.umeng.com/docs/119267/detail/118642

multifunctionandroiddemo's People

Contributors

guoyuqiang1 avatar pdap avatar umeng7887 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

multifunctionandroiddemo's Issues

安卓分享出错,调不起微信,

安卓分享出错,调不起微信,请各位大神帮忙看下,本人安卓菜鸟。
2018-10-30 6 41 49

这是调用方法:

UMImage image = new UMImage(getCurrentActivity(), imgUrl);
        image.compressStyle = UMImage.CompressStyle.SCALE;
        UMWeb web = new UMWeb(shareUrl);
        web.setTitle(title);
        web.setThumb(image);
        web.setDescription(content);

        new ShareAction(getCurrentActivity())
                .withMedia(web)
                .setDisplayList(SHARE_MEDIA.WEIXIN,SHARE_MEDIA.WEIXIN_CIRCLE,SHARE_MEDIA.WEIXIN_FAVORITE)
                .setCallback(new UMShareListener() {
                    @Override
                    public void onStart(SHARE_MEDIA share_media) {

                    }
                    @Override
                    public void onResult(SHARE_MEDIA share_media) {
                        callback.invoke("分享成功");
                    }

                    @Override
                    public void onError(SHARE_MEDIA share_media, Throwable throwable) {
                        callback.invoke("分享失败");
                    }

                    @Override
                    public void onCancel(SHARE_MEDIA share_media) {
                        callback.invoke("已取消分享");
                    }
                })
                .open();

新浪微博分享单独图片分享不了,官方文档也不说明

新浪微博分享单独图片分享不了,官方文档也不说明,连官方demo都报错,错误码2003?
经过不断测试,发现必须要给图片添加text文本,而且添加文本有顺序,必须要在withMedia之前withText,友盟你它瞄的能不能再坑一点???

help help

@OverRide
public Notification getNotification(Context context, UMessage msg) {
switch (msg.builder_id) {
case 1:
Notification.Builder builder = new Notification.Builder(context);
RemoteViews myNotificationView = new RemoteViews(context.getPackageName(),
R.layout.notification_view);
myNotificationView.setTextViewText(R.id.notification_title, msg.title);
myNotificationView.setTextViewText(R.id.notification_text, msg.text);
myNotificationView.setImageViewBitmap(R.id.notification_large_icon, getLargeIcon(context, msg));
myNotificationView.setImageViewResource(R.id.notification_small_icon,
getSmallIconId(context, msg));
builder.setContent(myNotificationView)
.setSmallIcon(getSmallIconId(context, msg))
.setTicker(msg.ticker)
.setAutoCancel(true);

                return builder.getNotification();
            default:
                //默认为0,若填写的builder_id并不存在,也使用默认。
                return super.getNotification(context, msg);
        }
    }

添加了自定义后死活不行

日志打印成功但报错了,管理端看不到统计数据

java.lang.Exception
at android.hardware.SystemSensorManager.registerListenerImpl(SystemSensorManager.java:118)
at android.hardware.SensorManager.registerListener(SensorManager.java:775)
at android.hardware.SensorManager.registerListener(SensorManager.java:682)
at com.umeng.commonsdk.internal.utils.j.a(SystemLayerUtil.java:110)
at com.umeng.commonsdk.UMConfigureImpl$2.run(UMConfigureImpl.java:211)
at java.lang.Thread.run(Thread.java:831)

只修改了appkey结果什么数据都没有

UMConfigure.init(this, "5d775e203fc1955868000e3a", "Umeng", UMConfigure.DEVICE_TYPE_PHONE,
"1f8224371b96fd990ef4e28643889232");

然后什么网页上面基本统计数据都没有
把手机添加到测试设备里面也没有数据

按着文档自己写也没有数据
搞得不能集成

外加 集成后需要生成release的apk安装还是说直接debug就能用也没有说下。反正我2个都试过了都失败了。

真的是莫名其妙 。

感觉文档里面这句话很蠢。 就不能自己做下判断么 不能是指添加了 功能就废了还是 什么意思

如果是在AUTO页面采集模式下,则需要注意,所有Activity中都不能调用MobclickAgent.onResume和onPause方法,详见后续页面采集章节

twitter分享失败

跑这个demo,点击twitter分享按钮,直接报“失败错误码:2003 错误信息:分享失败—当前无活动会话,请确保已经完成授权申请”

Android 4.2.2 在这PushAgent mPushAgent = PushAgent.getInstance(this)报的错,Android 7.0没问题

java.lang.NoClassDefFoundError: com.umeng.message.tag.TagManager
at com.umeng.message.PushAgent.(PushAgent.java:70)
at com.umeng.message.PushAgent.getInstance(PushAgent.java:95)
at com.zhunan.BaseApplication.initUpush(BaseApplication.java:418)
at com.zhunan.BaseApplication.onCreate(BaseApplication.java:143)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1000)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4452)
at android.app.ActivityThread.access$1300(ActivityThread.java:148)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1301)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5102)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:797)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:564)
at dalvik.system.NativeStart.main(Native Method)

微信分享

微信分享到ios设备的微信 ,无法显示缩略图

Twitter 授权授权用户信息 删除

06-04 18:20:12.380 25696-25910/com.android.xinchidao.xxoogo E/CrashHandler: In thread: Thread[Thread-26,5,main]
UncaughtException detected: java.lang.IllegalStateException: Authentication credentials are missing. See http://twitter4j.org/en/configuration.html for details. See and register at http://apps.twitter.com/
at twitter4j.TwitterBaseImpl.ensureAuthorizationEnabled(TwitterBaseImpl.java:192)
at twitter4j.TwitterImpl.get(TwitterImpl.java:199)
at twitter4j.TwitterImpl.showUser(TwitterImpl.java:163)
at com.umeng.socialize.handler.TwitterHandler$SaveDateThread.run(TwitterHandler.java:174)
at java.lang.Thread.run(Thread.java:761)
06-04 18:20:12.381 25696-25910/com.android.xinchidao.xxoogo E/AndroidRuntime: FATAL EXCEPTION: Thread-26
Process: com.android.xinchidao.xxoogo, PID: 25696
java.lang.IllegalStateException: Authentication credentials are missing. See http://twitter4j.org/en/configuration.html for details. See and register at http://apps.twitter.com/
at twitter4j.TwitterBaseImpl.ensureAuthorizationEnabled(TwitterBaseImpl.java:192)
at twitter4j.TwitterImpl.get(TwitterImpl.java:199)
at twitter4j.TwitterImpl.showUser(TwitterImpl.java:163)
at com.umeng.socialize.handler.TwitterHandler$SaveDateThread.run(TwitterHandler.java:174)
at java.lang.Thread.run(Thread.java:761)

在最新版本的Android Studio中无法编译通过

Windows 10 x64
在Android Studio 3.1.2 x64 中,gradle插件版本3.1.2,gradle版本4.6中,导入项目,更新gradle中关键字(compile→implementation,instrumentTest→androidTest),仍然编译失败;
在Android Studio 3.0.1 x64 中,gradle插件版本3.1.2,gradle版本4.6中,导入项目,更新gradle中关键字(compile→implementation,instrumentTest→androidTest),编译失败;
在Android Studio 3.0.1 x64 中,gradle插件版本3.0.1,gradle版本4.6中,导入项目,更新gradle中关键字(compile→implementation,instrumentTest→androidTest),编译失败;
在Android Studio 3.0.1 x64 中,gradle插件版本3.0.1,gradle版本4.6中,导入项目,编译通过,运行成功;

最后只好暂时将Andorid Studio回滚到 3.0.1,并且不更新gradle插件

华为离线推送收不到消息

小米离线消息接收正常。
华为则需要到华为后台根据华为的token去发一条透传信息激活,再调用友盟接口才能收到离线消息

混淆开启后运行报错

AGPBI: {"kind":"error","text":"Type com.umeng.commonsdk.proguard.at is referenced as an interface from com.umeng.commonsdk.statistics.proto.b$b.","sources":[{}],"tool":"D8"}
AGPBI: {"kind":"error","text":"Type com.umeng.commonsdk.proguard.l is referenced as an interface from com.umeng.commonsdk.stateless.b.","sources":[{}],"tool":"D8"}
AGPBI: {"kind":"error","text":"Type com.umeng.commonsdk.proguard.s is referenced as an interface from com.umeng.commonsdk.proguard.h$e.","sources":[{}],"tool":"D8"}
AGPBI: {"kind":"error","text":"Type com.umeng.commonsdk.proguard.at is referenced as an interface from com.umeng.commonsdk.proguard.v$b.","sources":[{}],"tool":"D8"}
AGPBI: {"kind":"error","text":"Type com.umeng.commonsdk.proguard.s is referenced as an interface from com.umeng.commonsdk.statistics.proto.e$e.","sources":[{}],"tool":"D8"}
com.android.builder.dexing.DexArchiveBuilderException: com.android.builder.dexing.DexArchiveBuilderException: Failed to process C:\Users\Zealience.gradle\caches\modules-2\files-2.1\com.umeng.umsdk\common\1.5.4\106d497cd0a6d8d6eb28a6ec664f5dc549e5e3e9\common-1.5.4.jar
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at java.util.concurrent.ForkJoinTask.getThrowableException(ForkJoinTask.java:593)
at java.util.concurrent.ForkJoinTask.reportException(ForkJoinTask.java:677)
at java.util.concurrent.ForkJoinTask.join(ForkJoinTask.java:720)
at com.android.ide.common.internal.WaitableExecutor.waitForTasksWithQuickFail(WaitableExecutor.java:146)
at com.android.build.gradle.internal.transforms.DexArchiveBuilderTransform.transform(DexArchiveBuilderTransform.java:405)
at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:239)
at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:235)
at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:102)
at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:230)
at sun.reflect.GeneratedMethodAccessor82.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
at org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:50)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:124)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:113)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:95)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:73)
at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:59)
at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:59)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:101)
at org.gradle.api.internal.tasks.execution.FinalizeInputFilePropertiesTaskExecuter.execute(FinalizeInputFilePropertiesTaskExecuter.java:44)
at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:91)
at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:62)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:59)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:256)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:249)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:238)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:123)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:79)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:104)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:98)
at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:663)
at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:597)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:98)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
at java.lang.Thread.run(Thread.java:745)
Caused by: com.android.builder.dexing.DexArchiveBuilderException: Failed to process C:\Users\Zealience.gradle\caches\modules-2\files-2.1\com.umeng.umsdk\common\1.5.4\106d497cd0a6d8d6eb28a6ec664f5dc549e5e3e9\common-1.5.4.jar
at com.android.build.gradle.internal.transforms.DexArchiveBuilderTransform.launchProcessing(DexArchiveBuilderTransform.java:900)
at com.android.build.gradle.internal.transforms.DexArchiveBuilderTransform.lambda$convertToDexArchive$6(DexArchiveBuilderTransform.java:825)
at java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1424)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
Caused by: com.android.builder.dexing.DexArchiveBuilderException: Error while dexing.
at com.android.builder.dexing.D8DexArchiveBuilder.getExceptionToRethrow(D8DexArchiveBuilder.java:124)
at com.android.builder.dexing.D8DexArchiveBuilder.convert(D8DexArchiveBuilder.java:101)
at com.android.build.gradle.internal.transforms.DexArchiveBuilderTransform.launchProcessing(DexArchiveBuilderTransform.java:895)
... 6 more
Caused by: com.android.tools.r8.CompilationFailedException: Compilation failed to complete
at com.android.tools.r8.utils.ExceptionUtils.withCompilationHandler(ExceptionUtils.java:65)
at com.android.tools.r8.utils.ExceptionUtils.withD8CompilationHandler(ExceptionUtils.java:43)
at com.android.tools.r8.D8.run(D8.java:90)
at com.android.builder.dexing.D8DexArchiveBuilder.convert(D8DexArchiveBuilder.java:99)
... 7 more
Caused by: com.android.tools.r8.utils.AbortException: Error: Type com.umeng.commonsdk.proguard.s is referenced as an interface from com.umeng.commonsdk.statistics.proto.e$e.
at com.android.tools.r8.utils.Reporter.failIfPendingErrors(Reporter.java:116)
at com.android.tools.r8.utils.Reporter.fatalError(Reporter.java:74)
at com.android.tools.r8.utils.ExceptionUtils.withCompilationHandler(ExceptionUtils.java:59)
... 10 more

isNeedAuthOnGetUserInfo无效

UMShareConfig config = new UMShareConfig();
config.isNeedAuthOnGetUserInfo(true);
UMShareAPI api = UMShareAPI.get(this);

改设置不起作用,每次去授权,如果上一次授权过,下一次授权就会跳过三方平台确认界面,直接回掉结果

使用控制台推送时 基础内容/定制样式/自定义图标/应用内图标文件/大图标文件 无效

demo 中的代码:

        @Override
        public Notification getNotification(Context context, UMessage msg) {
            switch (msg.builder_id) {
                case 1:
                    Notification.Builder builder = new Notification.Builder(context);
                    RemoteViews myNotificationView = new RemoteViews(context.getPackageName(),
                        R.layout.notification_view);
                    myNotificationView.setTextViewText(R.id.notification_title, msg.title);
                    myNotificationView.setTextViewText(R.id.notification_text, msg.text);
                    myNotificationView.setImageViewBitmap(R.id.notification_large_icon, getLargeIcon(context, msg));
                    myNotificationView.setImageViewResource(R.id.notification_small_icon,
                        getSmallIconId(context, msg));
                    builder.setContent(myNotificationView)
                        .setSmallIcon(getSmallIconId(context, msg))
                        .setTicker(msg.ticker)
                        .setAutoCancel(true);

                    return builder.getNotification();
                default:
                    //默认为0,若填写的builder_id并不存在,也使用默认。
                    return super.getNotification(context, msg);
            }
        }

经测试,在 drawable 中没有 umeng_push_notification_default_large_icon.png 时,显示为白块,不是ic_launcher.png;在 drawable 中有 umeng_push_notification_default_large_icon.png 时,会显示该图片;无论哪种情况都与控制台推送的图片无关。

但是 基础内容/定制样式/自定义图标/上传图标文件/大图标文件 是有效的。

厂商离线推送场景下,推送消息概率解析失败

NAccs.AgooFactory:  parseEncryptedMsg failure: 
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/alibaba/wireless/security/open/SecurityGuardManager;
    at org.android.agoo.control.AgooFactory.parseEncryptedMsg(Taobao:312)
    at com.taobao.agoo.BaseNotifyClickActivity$1.run(Taobao:96)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:458)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
    at java.util.concurrent.ThreadPoolExecutor.processTask(ThreadPoolExecutor.java:1187)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
    at java.lang.Thread.run(Thread.java:784)
 Caused by: java.lang.ClassNotFoundException: Didn't find class "com.alibaba.wireless.security.open.SecurityGuardManager" on path: DexPathList[[zip file "/system/framework/org.apache.http.legacy.boot.jar", zip file "/data/app/com.esun.mesportstore-naskkBLgn_BwrqiE0AgNJA==/base.apk"],nativeLibraryDirectories=[/data/app/com.esun.mesportstore-naskkBLgn_BwrqiE0AgNJA==/lib/arm, /data/app/com.esun.mesportstore-naskkBLgn_BwrqiE0AgNJA==/base.apk!/lib/armeabi-v7a, /system/lib, /product/lib]]
    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
    at org.android.agoo.control.AgooFactory.parseEncryptedMsg(Taobao:312) 
    at com.taobao.agoo.BaseNotifyClickActivity$1.run(Taobao:96) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:458) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301) 
    at java.util.concurrent.ThreadPoolExecutor.processTask(ThreadPoolExecutor.java:1187) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 
	
	
简要描述:
主线程Application onCreate()中PushAgent.register(IUmengRegisterCallback var1)
线程池启动线线程1,在TaobaoRegister.register中
进行赋值操作:
           Context var7 = var0.getApplicationContext();
        Config.a = var1;
        Config.setAgooAppKey(var0, var2);
        com.taobao.accs.utl.a.b = var3;
主线程中BaseNotifyClickActivity onCreate()启动线程2读取推送数据
buildMessage()函数线程池中解密数据,依赖
com.taobao.accs.client.a.a
com.taobao.accs.utl.a.b
String var3 = Config.a(mContext)

线程2先执行com.taobao.accs.client.a.a == 2判断为false,线程1还没设置为2,SecurityGuardManager var4 = SecurityGuardManager.getInstance(mContext),异常发生

//////////////////////////////////////////////////
	public static String parseEncryptedMsg(String var0) {
    String var1 = null;

    try {
        byte[] var2 = null;
        String var3 = Config.a(mContext);
        if (com.taobao.accs.client.a.a == 2) {
            if (!TextUtils.isEmpty(com.taobao.accs.utl.a.b)) {
                var2 = org.android.agoo.common.a.a(com.taobao.accs.utl.a.b.getBytes("utf-8"), (var3 + com.taobao.accs.utl.a.b(mContext)).getBytes("utf-8"));
            } else {
                ALog.e("AgooFactory", "getAppsign secret null", new Object[0]);
            }
        } else {
            SecurityGuardManager var4 = SecurityGuardManager.getInstance(mContext);
            if (var4 != null) {
                ALog.d("AgooFactory", "SecurityGuardManager not null!", new Object[0]);
                ISecureSignatureComponent var5 = var4.getSecureSignatureComp();
                SecurityGuardParamContext var6 = new SecurityGuardParamContext();
                var6.appKey = var3;
                var6.paramMap.put("INPUT", var3 + com.taobao.accs.utl.a.b(mContext));
                var6.requestType = 3;
                String var7 = var5.signRequest(var6, com.taobao.accs.client.a.c);
                var2 = org.android.agoo.common.a.a(var7);
            } else {
                ALog.e("AgooFactory", "SecurityGuardManager is null", new Object[0]);
            }
        }

        if (var2 != null && var2.length > 0) {
            byte[] var9 = org.android.agoo.common.a.a(Base64.decode(var0, 8), new SecretKeySpec(org.android.agoo.common.a.a(var2), "AES"), org.android.agoo.common.a.a(var3.getBytes("utf-8")));
            var1 = new String(var9, "utf-8");
        } else {
            ALog.e("AgooFactory", "aesDecrypt key is null!", new Object[0]);
        }
    } catch (Throwable var8) {
        ALog.e("AgooFactory", "parseEncryptedMsg failure: ", var8, new Object[0]);
    }

    return var1;
}


线程1:
com.umeng.message.common.d.a(new Runnable() {
            public void run() {
                String var1 = "umeng:" + PushAgent.this.getMessageAppkey();
                String var2 = PushAgent.this.getMessageSecret();
                UMLog var10000 = UMConfigure.umDebugLog;
                UMLog.mutlInfo(PushAgent.e, 2, new String[]{"appkey:" + var1 + ",secret:" + var2});

                try {
                    TaobaoRegister.register(PushAgent.this.c, var1, var2, "android@umeng", new IRegister() {
                        public void onSuccess(String var1) {
                            UMLog var10000 = UMConfigure.umDebugLog;
                            UMLog.mutlInfo(PushAgent.e, 2, new String[]{"注册成功:" + var1});
                            PushAgent.this.a(var1);
                        }

                        public void onFailure(String var1, String var2) {
                            UMLog var10000 = UMConfigure.umDebugLog;
                            UMLog.mutlInfo(PushAgent.e, 0, new String[]{"注册失败-->s:" + var1 + ",s1:" + var2});
                            PushAgent.this.a(var1, var2);
                            var10000 = UMConfigure.umDebugLog;
                            UMLog.aq(com.umeng.message.proguard.k.a, 0, "\\|");
                        }
                    });
                } catch (AccsException var4) {
                    var10000 = UMConfigure.umDebugLog;
                    UMLog.mutlInfo(PushAgent.e, 0, new String[]{"注册失败"});
                }

            }
        });
    } catch (Exception var3) {
        var10000 = UMConfigure.umDebugLog;
        UMLog.mutlInfo(e, 0, new String[]{"注册失败"});
    }

第三方授权无法获取用户资料。。。

05-17 14:43:29.060 32599-32599/com.umeng.soexample D/openSDK_LOG.AssistActivity: --setResultDataForLogin-- {"ret":0,"openid":"8FA94DBE6954435E556164A40517D47F","access_token":"5D569EF3372DF4CAEE427B94977BEAA7","pay_token":"DC9993CD986FA21F7D14F30EFB9A72E0","expires_in":7776000,"pf":"desktop_m_qq-10000144-android-2002-","pfkey":"6fa5275374786647cf37905ff6ccbf5c","msg":"","login_cost":232,"query_authority_cost":238,"authority_cost":0}
05-17 14:43:29.492 32599-32599/com.umeng.soexample I/msg: ============================Map=========================
05-17 14:43:29.493 32599-32599/com.umeng.soexample I/msg: unionid::::
05-17 14:43:29.493 32599-32599/com.umeng.soexample I/msg: ============================Map=========================
05-17 14:43:29.493 32599-32599/com.umeng.soexample I/msg: appid::::
05-17 14:43:29.493 32599-32599/com.umeng.soexample I/msg: ============================Map=========================
05-17 14:43:29.493 32599-32599/com.umeng.soexample I/msg: auth_time::::
05-17 14:43:29.493 32599-32599/com.umeng.soexample I/msg: ============================Map=========================
05-17 14:43:29.493 32599-32599/com.umeng.soexample I/msg: pf::::desktop_m_qq-10000144-android-2002-
05-17 14:43:29.493 32599-32599/com.umeng.soexample I/msg: ============================Map=========================
05-17 14:43:29.493 32599-32599/com.umeng.soexample I/msg: pay_token::::DC9993CD986FA21F7D14F30EFB9A72E0
05-17 14:43:29.493 32599-32599/com.umeng.soexample I/msg: ============================Map=========================
05-17 14:43:29.493 32599-32599/com.umeng.soexample I/msg: openid::::8FA94DBE6954435E556164A40517D47F
05-17 14:43:29.493 32599-32599/com.umeng.soexample I/msg: ============================Map=========================
05-17 14:43:29.493 32599-32599/com.umeng.soexample I/msg: access_token::::5D569EF3372DF4CAEE427B94977BEAA7
05-17 14:43:29.493 32599-32599/com.umeng.soexample I/msg: ============================Map=========================
05-17 14:43:29.493 32599-32599/com.umeng.soexample I/msg: page_type::::
05-17 14:43:29.493 32599-32599/com.umeng.soexample I/msg: ============================Map=========================
05-17 14:43:29.493 32599-32599/com.umeng.soexample I/msg: pfkey::::6fa5275374786647cf37905ff6ccbf5c
05-17 14:43:29.493 32599-32599/com.umeng.soexample I/msg: ============================Map=========================
05-17 14:43:29.493 32599-32599/com.umeng.soexample I/msg: uid::::8FA94DBE6954435E556164A40517D47F
05-17 14:43:29.493 32599-32599/com.umeng.soexample I/msg: ============================Map=========================
05-17 14:43:29.493 32599-32599/com.umeng.soexample I/msg: sendinstall::::
05-17 14:43:29.494 32599-32599/com.umeng.soexample I/msg: ============================Map=========================
05-17 14:43:29.494 32599-32599/com.umeng.soexample I/msg: expires_in::::7776000
05-17 14:43:29.494 32599-32599/com.umeng.soexample I/msg: ============================Map=========================
05-17 14:43:29.494 32599-32599/com.umeng.soexample I/msg: as::::c7394704798a158208a74ab60104f0ba
05-17 14:43:29.494 32599-32599/com.umeng.soexample I/msg: ============================Map=========================
05-17 14:43:29.494 32599-32599/com.umeng.soexample I/msg: aid::::100424468
05-17 14:43:29.494 32599-32599/com.umeng.soexample I/msg: ============================Map=========================
05-17 14:43:29.494 32599-32599/com.umeng.soexample I/msg: ret::::0
05-17 14:43:29.513 32599-32599/com.umeng.soexample D/MicroMsg.PaySdk.WXFactory: createWXAPI, appId = wxdc1e388c3822c80b, checkSignature = false

通知点击事件拦截

请问应用在划掉(进程关闭)后,该如何拦截通知的点击事件及收到推送的事件?
另外现在即便在设置了pushAgent.setNotificaitonOnForeground(false)之后应用在前台的时候也没有通知显示,这是为什么?

推送必须在app中

当用户打开app才能进行相关的推送,没有打开时不能进行推送

集成好了编译通过,运行时直接闪退,防混淆也加了,就是找不到属性UMConfigure中的umDebugLog

05-29 09:07:35.544 18979-19129/? E/AndroidRuntime: FATAL EXCEPTION: Thread-9351
Process: com.xxxxx, PID: 18979
java.lang.NoSuchFieldError: No static field umDebugLog of type Lcom/umeng/commonsdk/debug/UMDebugLog; in class Lcom/umeng/commonsdk/UMConfigure; or its superclasses (declaration of 'com.umeng.commonsdk.UMConfigure' appears in /data/app/com.xxxx-2/split_lib_dependencies_apk.apk)
at com.umeng.socialize.utils.SLog.E(SLog.java:32)
at com.umeng.socialize.UMShareAPI$a.a(UMShareAPI.java:349)
at com.umeng.socialize.UMShareAPI$a.doInBackground(UMShareAPI.java:328)
at com.umeng.socialize.common.QueuedWork$UMAsyncTask$1.run(QueuedWork.java:136)
at java.lang.Thread.run(Thread.java:818)

推送5.0+与阿里系包冲突(com.alibaba.sdk.android.utils)

推送5.0+与阿里系包冲突(com.alibaba.sdk.android.utils),这个冲突如何解决,阿里的最高版本是1.1.3,且必须得用1.1.3及以上的包,而umeng里面的版本低,且5.0.2库里umeng将该包直接集成在了自己的class中,这怎么解决??

UM 6.0+ 阿里风控可以正常安装,接收不到推送

awcn.DefaultSecurityGuard: Securityguard sign request failed.
ErrorCode = 608
com.alibaba.wireless.security.open.SecException:
at com.taobao.wireless.security.adapter.JNICLibrary.doCommandNative(Native Method)
at com.alibaba.wireless.security.mainplugin.a.doCommand(Unknown Source:0)
at com.taobao.wireless.security.adapter.a.b.a(Unknown Source:27)
at com.taobao.wireless.security.adapter.a.b.a(Unknown Source:41)
at com.taobao.wireless.security.adapter.a.b.a(Unknown Source:35)
at com.alibaba.wireless.security.a.h.a.signRequest(Unknown Source:11)
at anet.channel.security.b.sign(Taobao:61)
at anet.channel.c.sign(Taobao:146)
at anet.channel.strategy.dispatch.e.a(Taobao:140)
at anet.channel.strategy.dispatch.e.a(Taobao:82)
at anet.channel.strategy.dispatch.b$a.run(Taobao:77)

twitter 授权登录没反应

UMAuthListener 监听器中:
public void onStart(SHARE_MEDIA platform)

  1. 上面这个回调走,下面三个回调都不走,确认工程配置没问题~~~
  2. AndroidManifest 以及 applecation 以及 activity配置全都没有问题
    public void onComplete(SHARE_MEDIA platform, int action, Map<String, String> data)
    public void onError(SHARE_MEDIA platform, int action, Throwable t)
    public void onCancel(SHARE_MEDIA platform, int action)

手机收不到通知

使用demo android端,推送功能,在测试模式中,推送消息,安装到模拟器中的demo可以收到通知,但是安装到手机中的demo却收不到通知,求解决,

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.