Giter Site home page Giter Site logo

alicloud-android-demo's Introduction

移动云产品Android Demo


阿里云ApsaraMobile(移动云)是阿里巴巴移动技术的开放平台,沉淀了阿里巴巴多年移动互联网系统架构积累,汇聚和开放了阿里巴巴移动中台核心技术能力,期望为广大开发者提供稳定、弹性、安全、快速的移动应用基础设施,帮助开发者构建工程化、系统化、智能化的企业级移动互联网研发体系。

移动云产品管理地址:移动云产品

SDK下载:地址

注:demo中的账号信息配置只为方便demo例程的运行,真实产品中,建议您使用安全黑匣子或其他方式保障密钥的安全性。

一、HTTPDNS


HTTPDNS使用HTTP协议进行域名解析,代替现有基于UDP的DNS协议,域名解析请求直接发送到阿里云的HTTPDNS服务器,从而绕过运营商的Local DNS,能够避免Local DNS造成的域名劫持问题和调度不精准问题。

二、移动推送


阿里移动推送(Alibaba Cloud Mobile Push)是基于大数据的移动智能推送服务,帮助App快速集成移动推送的功能,在实现高效、精确、实时的移动推送的同时,极大地降低了开发成本。让开发者最有效地与用户保持连接,从而提高用户活跃度、提高应用的留存率。

三、移动数据分析


移动数据分析 (Mobile Analytics) 是阿里云推出的一款移动App数据统计分析产品,为开发者提供一站式数据化运营服务:通用的多维度用户行为分析、数据开放并支持自定义分析、数据无缝对接其他数据应用产品,助力移动开发者实现基于大数据技术的精细化运营、提升产品质量和体验、增强用户黏性。

四、移动用户反馈


移动用户反馈(Mobile Feedback)是App内部的用户反馈系统。无需退出,就可以快速发送文字、图片、语音进行意见反馈和报告Bug。 开发者可以及时和用户保持沟通,提升用户满意度(此外,自动抓取APP在应用市场的评论数据,帮助开发者掌握用户对应用的评论)。

五、移动热修复


移动热修复(Mobile Hotfix)是面向移动开发者的App热修复服务方案。产品基于阿里巴巴首创hotpatch技术,提供细粒度热修复能力,无需等待,实时修复应用线上问题。

alicloud-android-demo's People

Contributors

aptentity avatar cijianzy avatar flangxisi avatar homelesser avatar jack-ws avatar jllk avatar lingmingyb avatar liyulong1995 avatar new-xd avatar pengqun avatar perterpon avatar sducodemonkey avatar wangjian-k avatar xuyecan 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  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

alicloud-android-demo's Issues

阿里推送和阿里百川IM同时集成会报错

Error:Execution failed for task ':ipark2:transformClassesWithJarMergingForDebug'.

com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/alibaba/sdk/android/BuildConfig.class

在华为机型上初始化initCloudChannel()报错

Process: com.inthub.wuliubaodriver, PID: 8101
java.lang.NoClassDefFoundError: com.alibaba.sdk.android.utils.AlicloudTrackerManager
at com.alibaba.sdk.android.push.c.a.(Unknown Source)
at com.alibaba.sdk.android.push.c.a.a(Unknown Source)
at com.alibaba.sdk.android.push.impl.j.a(Unknown Source)
at com.alibaba.sdk.android.push.noonesdk.PushServiceFactory.init(Unknown Source)
at com.inthub.wuliubaodriver.common.MyApplication.initCloudChannel(MyApplication.java:365)
at com.inthub.wuliubaodriver.common.MyApplication.onCreate(MyApplication.java:112)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java)
at android.app.ActivityThread.access$1800(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java)
at android.os.Handler.dispatchMessage(Handler.java)
at android.os.Looper.loop(Looper.java)
at android.app.ActivityThread.main(ActivityThread.java)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:871)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:687)
at dalvik.system.NativeStart.main(Native Method)

加载补丁成功后,应用持续崩溃

04-17 17:19:27.625 17827-17827/com.exam.app D/SophixStubApplication: 补丁加载成功!
04-17 17:19:27.627 17827-17827/com.exam.app E/Sophix.PatchManager: replaceRealApplication
java.lang.ClassNotFoundException
at com.taobao.sophix.b.a.a.a.findClass(Sophix:199)
at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at com.taobao.sophix.a.c.n(Sophix:637)
at com.taobao.sophix.a.c.a(Sophix:131)
at com.taobao.sophix.a.e.initialize(Sophix:71)
at com.exam.app.SophixStubApplication.attachBaseContext(SophixStubApplication.java:61)
at android.app.Application.attach(Application.java:194)
at android.app.Instrumentation.newApplication(Instrumentation.java:1009)
at android.app.Instrumentation.newApplication(Instrumentation.java:993)
at android.app.LoadedApk.makeApplication(LoadedApk.java:802)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5485)
at android.app.ActivityThread.-wrap2(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1602)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:163)
at android.app.ActivityThread.main(ActivityThread.java:6343)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:880)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:770)

通知栏图标更改无效

PushServiceFactory.init(applicationContext);
pushService = PushServiceFactory.getCloudPushService();
// pushService.setNotificationSmallIcon(R.mipmap.ic_launcher);

// Resources res = this.getResources();
// pushService.setNotificationLargeIcon(BitmapFactory.decodeResource(res,R.mipmap.ic_launcher));

    /**
     * 此处指定资源Id为R.raw.alicloud_notification_largeicon_assgin的图标资源
     */

// int assignLargeIconId = getResources().getIdentifier(ASSIGN_NOTIFCE_LARGE_ICON, DEFAULT_RES_ICON_TYPE, PackageName);
// if (assignLargeIconId != 0) {
// Drawable drawable = getApplicationContext().getResources().getDrawable(assignLargeIconId);
// if (drawable != null) {
// Bitmap bitmap = ((BitmapDrawable)drawable).getBitmap();
// pushService.setNotificationLargeIcon(bitmap);
// }
// } else {
// L.e("设置通知图标出错");
// }
设置之后还是 默认的系统图标,没有更改

mpush_android_demo 报 NDK toolchains 找不到`mipsel-linux-android`的错误

最新的 NDK 已经标记了mipsel-linux-android是过时的了,已经不包含此模块,请尽快更新

org.gradle.initialization.ReportedException: org.gradle.internal.exceptions.LocationAwareException: A problem occurred configuring project ':mpush_android_demo'.
	at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:105)
	at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:92)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:63)
	at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:92)
	at org.gradle.initialization.DefaultGradleLauncher.getBuildAnalysis(DefaultGradleLauncher.java:88)
	at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.configure(InProcessBuildActionExecuter.java:107)
	at org.gradle.tooling.internal.provider.runner.ClientProvidedBuildActionRunner.run(ClientProvidedBuildActionRunner.java:45)
	at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
	at org.gradle.tooling.internal.provider.runner.SubscribableBuildActionRunner.run(SubscribableBuildActionRunner.java:58)
	at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
	at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:48)
	at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:30)
	at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:81)
	at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:46)
	at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:52)
	at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
	at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
	at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
	at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
	at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
	at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
	at org.gradle.util.Swapper.swap(Swapper.java:38)
	at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
	at org.gradle.launcher.daemon.server.health.DaemonHealthTracker.execute(DaemonHealthTracker.java:47)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
	at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:60)
	at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
	at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:72)
	at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
	at org.gradle.launcher.daemon.server.health.HintGCAfterBuild.execute(HintGCAfterBuild.java:41)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
	at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
	at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:237)
	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54)
	at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)
Caused by: org.gradle.internal.exceptions.LocationAwareException: A problem occurred configuring project ':mpush_android_demo'.
	at org.gradle.initialization.DefaultExceptionAnalyser.transform(DefaultExceptionAnalyser.java:74)
	at org.gradle.initialization.MultipleBuildFailuresExceptionAnalyser.transform(MultipleBuildFailuresExceptionAnalyser.java:47)
	at org.gradle.initialization.StackTraceSanitizingExceptionAnalyser.transform(StackTraceSanitizingExceptionAnalyser.java:30)
	at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:100)
	at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:92)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:63)
	at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:92)
	at org.gradle.initialization.DefaultGradleLauncher.getBuildAnalysis(DefaultGradleLauncher.java:88)
	at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.configure(InProcessBuildActionExecuter.java:107)
	at org.gradle.tooling.internal.provider.runner.ClientProvidedBuildActionRunner.run(ClientProvidedBuildActionRunner.java:45)
	at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
	at org.gradle.tooling.internal.provider.runner.SubscribableBuildActionRunner.run(SubscribableBuildActionRunner.java:58)
	at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
	at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:48)
	at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:30)
	at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:81)
	at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:46)
	at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:52)
	at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
	at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
	at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
	at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
	at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
	at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
	at org.gradle.util.Swapper.swap(Swapper.java:38)
	at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
	at org.gradle.launcher.daemon.server.health.DaemonHealthTracker.execute(DaemonHealthTracker.java:47)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
	at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:60)
	at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
	at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:72)
	at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
	at org.gradle.launcher.daemon.server.health.HintGCAfterBuild.execute(HintGCAfterBuild.java:41)
	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
	at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
	at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:237)
	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54)
	at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40)
Caused by: org.gradle.api.ProjectConfigurationException: A problem occurred configuring project ':mpush_android_demo'.
	at org.gradle.configuration.project.LifecycleProjectEvaluator.addConfigurationFailure(LifecycleProjectEvaluator.java:79)
	at org.gradle.configuration.project.LifecycleProjectEvaluator.notifyAfterEvaluate(LifecycleProjectEvaluator.java:74)
	at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:61)
	at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:540)
	at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:93)
	at org.gradle.execution.TaskPathProjectEvaluator.configureHierarchy(TaskPathProjectEvaluator.java:47)
	at org.gradle.configuration.DefaultBuildConfigurer.configure(DefaultBuildConfigurer.java:35)
	at org.gradle.initialization.DefaultGradleLauncher$2.run(DefaultGradleLauncher.java:124)
	at org.gradle.internal.Factories$1.create(Factories.java:22)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:53)
	at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:121)
	at org.gradle.initialization.DefaultGradleLauncher.access$200(DefaultGradleLauncher.java:32)
	at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:98)
	... 42 more
Caused by: java.lang.RuntimeException: No toolchains found in the NDK toolchains folder for ABI with prefix: mipsel-linux-android
	at com.android.build.gradle.internal.ndk.DefaultNdkInfo.getDefaultToolchainVersion(DefaultNdkInfo.java:330)
	at com.android.build.gradle.internal.ndk.DefaultNdkInfo.getToolchainPath(DefaultNdkInfo.java:207)
	at com.android.build.gradle.internal.ndk.DefaultNdkInfo.getStripExecutable(DefaultNdkInfo.java:300)
	at com.android.build.gradle.internal.ndk.NdkHandler.getStripExecutable(NdkHandler.java:333)
	at com.android.build.gradle.internal.transforms.StripDebugSymbolTransform.<init>(StripDebugSymbolTransform.java:73)
	at com.android.build.gradle.internal.TaskManager.createStripNativeLibraryTask(TaskManager.java:1339)
	at com.android.build.gradle.internal.ApplicationTaskManager.createTasksForVariantData(ApplicationTaskManager.java:289)
	at com.android.build.gradle.internal.VariantManager.createTasksForVariantData(VariantManager.java:485)
	at com.android.build.gradle.internal.VariantManager$3.call(VariantManager.java:293)
	at com.android.build.gradle.internal.VariantManager$3.call(VariantManager.java:290)
	at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:156)
	at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:120)
	at com.android.build.gradle.internal.profile.SpanRecorders.record(SpanRecorders.java:44)
	at com.android.build.gradle.internal.VariantManager.createAndroidTasks(VariantManager.java:286)
	at com.android.build.gradle.BasePlugin$11.call(BasePlugin.java:688)
	at com.android.build.gradle.BasePlugin$11.call(BasePlugin.java:685)
	at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:156)
	at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:120)
	at com.android.build.gradle.BasePlugin.createAndroidTasks(BasePlugin.java:683)
	at com.android.build.gradle.BasePlugin$10.call(BasePlugin.java:608)
	at com.android.build.gradle.BasePlugin$10.call(BasePlugin.java:605)
	at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:156)
	at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:120)
	at com.android.build.gradle.BasePlugin.lambda$createTasks$1(BasePlugin.java:603)
	at org.gradle.internal.event.BroadcastDispatch$ActionInvocationHandler.dispatch(BroadcastDispatch.java:93)
	at org.gradle.internal.event.BroadcastDispatch$ActionInvocationHandler.dispatch(BroadcastDispatch.java:82)
	at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:44)
	at org.gradle.internal.event.BroadcastDispatch.dispatch(BroadcastDispatch.java:79)
	at org.gradle.internal.event.BroadcastDispatch.dispatch(BroadcastDispatch.java:30)
	at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
	at com.sun.proxy.$Proxy11.afterEvaluate(Unknown Source)
	at org.gradle.configuration.project.LifecycleProjectEvaluator.notifyAfterEvaluate(LifecycleProjectEvaluator.java:67)
	... 54 more

StrictMode the onesdk push (mpush_android_demo) report resource leaks error!

In Android StictMode, when i run the app, it report this error.
I found the code just return the HttpURLConnection to the caller, so whether forgot to call close()?

E/StrictMode: A resource was acquired at attached stack trace but never released. See java.io.Closeable for information on avoiding resource leaks.
        java.lang.Throwable: Explicit termination method 'end' not called
        at dalvik.system.CloseGuard.open(CloseGuard.java:184)
        at java.util.zip.Inflater.<init>(Inflater.java:82)
        at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:96)
        at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:81)
        at libcore.net.http.HttpEngine.initContentStream(HttpEngine.java:528)
        at libcore.net.http.HttpEngine.readResponse(HttpEngine.java:836)
        at libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:274)
        at libcore.net.http.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:486)
        at com.alibaba.sdk.android.ams.common.util.HttpConnectionUtil.a(Unknown Source)
        at com.alibaba.sdk.android.ams.common.util.HttpConnectionUtil.openConnection(Unknown Source)
        at com.alibaba.sdk.android.mbase.mconfig.impl.MobileConfigManagerImpl.a(Unknown Source)
        at com.alibaba.sdk.android.mbase.mconfig.impl.MobileConfigManagerImpl.loadConfig(Unknown Source)
        at com.alibaba.sdk.android.mbase.session.plugin.AliCloudSessionPlugin.start(Unknown Source)
        at com.alibaba.sdk.android.plugin.a.b.startPlugin(SourceFile:231)
        at com.alibaba.sdk.android.plugin.b.b(SourceFile:101)
        at com.alibaba.sdk.android.task.a.run(SourceFile:303)
        at android.os.Handler.handleCallback(Handler.java:615)
        at android.os.Handler.dispatchMessage(Handler.java:92)
        at android.os.Looper.loop(Looper.java:213)
        at android.os.HandlerThread.run(HandlerThread.java:60)

也是找不到地方问了:阿里有无计划像推出dexposed一样的提供一个sophix版的hook框架?

贵产品的热修复能力也得依赖有hook安卓art虚拟机的能力吧。既然有此能力,何不公开一个hook版的sdk呢,提供接口就好,不需要开源。看到这版sdk里有个“MethodReplace”的注解看得心里痒痒的。鄙人对hotfix的需求不甚强烈,对hook的需求比较大。而且试过市面上的一些5.0以上的hook框架,都有不少缺陷。

贵产品广告打的是4.0-7.0通吃。诚心希望大厂促成此愿,造福业界。

求教咋解决java环境问题

"Error: Registry key 'Software\JavaSoft\Java Runtime Environment'\CurrentVersion'\r"
"has value '1.8', but '1.7' is required.\r"
"Error: could not find java.dll\r"
"Error: Could not find Java SE Runtime Environment.\r"

我打补丁给我来个这个提示。这个咋修改,java环境咋都影响打补丁了。。我记得我在哪里看到有个群,找不到了,碰到问题也不知道去哪里问,只好来这里了。有知道群号的麻烦告诉下,谢谢

6.0三星C9Pro

6.0三星C9Pro强制杀死进程之后,再次进入会出现回到之前有问题的代码中,意思是热修复包没加载出来

关于重定向的问题

拦截重定向请求,采用递归的方式将其完成,这时前端同学获取 window.location.href,必然是重定向之前的页面,所以会出现错误,请问是如何解决的?

程序无响应

AliHaAdapter.getInstance().addPlugin(Plugin.tlog);
在application中添加这个plugin后,应用启动的时候程序无响应了

友盟推送和httpdns服务冲突

我应用启动时启动的友盟推送服务。我在后续的操作中要使用阿里云httpdns服务,怎么获取都是空,看了才知道umeng推送也用的是httpdns服务。我把umeng推送注释掉了,httpdns服务才能够正常使用。请问如何解决冲突的问题。谢谢

RN版本MPush集成与Alipay新版SDK冲突解决方法

RN最佳实践中推荐使用:implementation 'com.aliyun.ams:alicloud-android-push:3.1.5' 方式编译,但是如果在项目中引入了Alipay的新版SDK就会造成冲突,报错;
错误:
`* What went wrong:
Execution failed for task ':app:checkDebugDuplicateClasses'.

1 exception was raised by workers:
java.lang.RuntimeException: java.lang.RuntimeException: Duplicate class com.ta.utdid2.b.a.a found in modules alicloud-android-utdid-1.1.5.3.jar (com.aliyun.ams:alicloud-android-utdid:1.1.5.3) and classes.jar (:alipaySdk-15.5.9-20181123210601:)`

解决方法如下: 希望对大伙儿有用
implementation ('com.aliyun.ams:alicloud-android-push:3.1.5'){ //阿里云推送
exclude(module:'alicloud-android-utdid')
}

参考文章:https://www.wandouip.com/t5i129645/

mpush_android_demo 8.0不显示到通知栏

用mpush_android_demo。再8.0小米6和华为荣耀v9手机上做实验。都是只能收到通知,但是没有显示到通知栏上。用三星6.0手机能正常接收通知

请更新hotfix_android_demo

1.版本demo版本使用sdk3.1.1与官方文档sdk3.2.8用法不一致期间出现了些许问题,为了方便其他开发者请更新demo示例
2.我可以pull request吗?

关于appbundle如何集成热修复方案

谷歌应用市场上架的时候有一个appbundle的优化策略减小apk包的大小,但是打包的过程有google来做,这边只能得到一个*.aab的文件
虽然仍然可以通过打包APK的方式做热修复方案,但是有没有什么可以达到两者都可以使用的方式呢?

iOS 应用必须支持IPV6

请问,苹果新规定,要求应用必须支持ipv6,这个还能用吗?不能用的话,有没有其他的替代方案?

热修复

请问热修复调用了 SophixManager.getInstance().queryAndLoadNewPatch(); 查询之后,logcat打印出了 query download success ,但是补丁为什么没有应用到项目中去呢 ,是还需要调用什么代码来安装这个补丁吗?

不走onNotificationReceivedInApp回调

private void setPushNotification() {  
      BasicCustomPushNotification notification = new BasicCustomPushNotification();  
      notification.setBuildWhenAppInForeground(false);
      boolean b = CustomNotificationBuilder.getInstance().setCustomNotification(1, notification);
}

我创建自定义通知样式,并且设置推送应用内到达不创建通知弹窗,为什么还不走这个回调

MAC上使用SophixPatchTool合并官方DEMO补丁发生异常

操作系统:MAC OS X El Captain 10.11.6
工具:SophixPatchTool 3.0
问题:打包后版本设置不一样,合并出问题
问题如下:
There is not adding in resources.
"start to build alibaba sophix patch, tool verison: 2.0.0"
"forceColdFix: false"
"ignoreSo: true"
"assembleResourceFile res:/Volumes/DOCUMENT/COMPILE/Android/Study/Hotfix/aliyun/alicloud-android-demo/SophixPatchTool.app/Contents/MacOS/cache/patch/ resid:/Volumes/DOCUMENT/COMPILE/Android/Study/Hotfix/aliyun/alicloud-android-demo/SophixPatchTool.app/Contents/MacOS/cache/patch/overlay_map.txt"
"prepareDexClassDef begin/Users/richsjeson/Documents/hotfix-working/apatch-tmp/unzip/base.apk baseApk: true"
"prepareDexClassDef no resIdMapFile exit"

"scanClasses disassembleClass to smaliDir:null dexFiles:[/Users/richsjeson/Documents/hotfix-working/apatch-tmp/unzip/base.apk/classes.dex]"
"prepareDexClassDef begin/Users/richsjeson/Documents/hotfix-working/apatch-tmp/unzip/new.apk baseApk: false"
"prepareDexClassDef no resIdMapFile exit"
"scanClasses disassembleClass to smaliDir:null dexFiles:[/Users/richsjeson/Documents/hotfix-working/apatch-tmp/unzip/new.apk/classes.dex]"
"hotFixJudge true: patch support hot fix"
"no any patchClasses"
"dopatch failure, attempt to execute "java -jar SophixDex.jar -c help" for help"
"com.taobao.android.dex.PatchException: no patch files found"

混淆问题

加入混淆代码,编译不过去,报Execution failed for task ':app:transformClassesAndResourcesWithProguardForAlogRelease'.

官方能不能出个Flutter的推送插件

官方能不能出个Flutter的推送插件
Flutter现在很火啊 闲鱼都用上Flutter了,
极光推送官方都开始支持Flutter了
阿里推送居然还没支持,求官方做下Flutter集成

flutter插件问题

写了一个flutter插件,为了低耦合,初始化放在了插件中,但是插件默认是在activity中注册,能让sdk在activity中初始化吗?

混淆之后一直返回错误码 errorcode:10108 -- errorMessage:结果解析出错

SDK版本:3.1.4
混淆是用的官方文档的配置 还是报错 不混淆就是对的 急急急!!!!!!!
image
这是添加的配置信息
#阿里云推送
-keepclasseswithmembernames class ** {
native ;
}
-keepattributes Signature
-keep class sun.misc.Unsafe { ; }
-keep class com.taobao.
* {;}
-keep class com.alibaba.** {
;}
-keep class com.alipay.** {;}
-keep class com.ut.** {
;}
-keep class com.ta.** {;}
-keep class anet.**{
;}
-keep class anetwork.{*;}
-keep class org.android.spdy.
{;}
-keep class org.android.agoo.**{
;}
-keep class android.os.{*;}
-dontwarn com.taobao.

-dontwarn com.alibaba.**
-dontwarn com.alipay.**
-dontwarn anet.**
-dontwarn org.android.spdy.**
-dontwarn org.android.agoo.**
-dontwarn anetwork.**
-dontwarn com.ut.**
-dontwarn com.ta.**

小米通道

-keep class com.xiaomi.** {*;}
-dontwarn com.xiaomi.**

华为通道

-keep class com.huawei.** {*;}
-dontwarn com.huawei.**

GCM/FCM通道

-keep class com.google.firebase.**{*;}

咨询一下

咨询一下,可以在纯flutter项目中使用该方案吗?

希望有个kotlin的demo

我用kontlin集成混合推送时(小米和华为推送)发现找不到 MiPushRegister和HuaWeiRegister这两个类,希望给解决下

Hot Fix

Hot Fix demo中setting.gradle文件缺失

Unable to merge dex

集成移动反馈后出现这个错误(环境 Android studio 3.0)

java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex

但是我同事的Android studio 2.3居然不报错,请问这是什么原因导致的.

同时集成alipaySdk和pushSdk会类冲突

Error:Execution failed for task ':app:transformClassesWithDexForDebug'.

com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexException: Multiple dex files define Lcom/ta/utdid2/device/UTDevice;

关于mpush_android_demo,启动崩溃问题

03-30 13:35:20.608 31833-31833/cloud.aliyun.test E/AndroidRuntime: FATAL EXCEPTION: main
Process: cloud.aliyun.test, PID: 31833
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/alibaba/sdk/android/utils/AlicloudTrackerManager;
at com.alibaba.sdk.android.push.c.a.(Unknown Source)
at com.alibaba.sdk.android.push.c.a.a(Unknown Source)
at com.alibaba.sdk.android.push.impl.j.a(Unknown Source)
at com.alibaba.sdk.android.push.noonesdk.PushServiceFactory.init(Unknown Source)
at com.alibaba.cloudpushdemo.application.MainApplication.initCloudChannel(MainApplication.java:35)
at com.alibaba.cloudpushdemo.application.MainApplication.onCreate(MainApplication.java:25)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1035)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6013)
at android.app.ActivityThread.access$1700(ActivityThread.java:211)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1766)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:6918)
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:1404)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.alibaba.sdk.android.utils.AlicloudTrackerManager" on path: DexPathList[[zip file "/data/app/cloud.aliyun.test-1/base.apk"],nativeLibraryDirectories=[/data/app/cloud.aliyun.test-1/lib/arm, /vendor/lib, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
at com.alibaba.sdk.android.push.c.a.(Unknown Source) 
at com.alibaba.sdk.android.push.c.a.a(Unknown Source) 
at com.alibaba.sdk.android.push.impl.j.a(Unknown Source) 
at com.alibaba.sdk.android.push.noonesdk.PushServiceFactory.init(Unknown Source) 
at com.alibaba.cloudpushdemo.application.MainApplication.initCloudChannel(MainApplication.java:35) 
at com.alibaba.cloudpushdemo.application.MainApplication.onCreate(MainApplication.java:25) 
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1035) 
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6013) 
at android.app.ActivityThread.access$1700(ActivityThread.java:211) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1766) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:145) 
at android.app.ActivityThread.main(ActivityThread.java:6918) 
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:1404) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199) 
Suppressed: java.lang.ClassNotFoundException: com.alibaba.sdk.android.utils.AlicloudTrackerManager
at java.lang.Class.classForName(Native Method)
at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
... 18 more
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available

移动用户反馈页面导航问题

背景: 目前我们的应用使用插件化进行开发, 将 feedback 作为单独的一个应用开发完毕后植入宿主的插件管理器中.

现状: MainActivity 负责实例化 Feedback 相关 fragment 并展示后, 如果用户进入二级页面时误触返回键, 会导致 Activity 被关闭, 而不是返回一级页面.

诉求: 提供相关接口用于管理 WebView 的导航.

workaround: 使用反射获取 WebView, 在 onBackPressed() 回调中对 webView 进行状态判断.

文件缺失

3.1.2版本 sdk push包下找不到AndroidPopupActivity类

demo使用的几个疑问

1.为何开启推送,关闭推送都可以收到推送消息?
2.在通知设置里边不论是否设置声音、图片都没有什么效果?
3.demo我中间修改channelId后为何就再也收不到消息了,即使和推送后台保持一致仍然没有用
ps:手机为华为 系统9.0

使用热修复Sophix,加载补丁后导致应用崩溃。kotlin,协程出现找不到

按文档集成了Sophix,在不使用kotlin协程的情况,加载补丁后都是可以正常运行,实现热修复。
问题在于,使用了kotlin的协程之后,则会出现如下日志:

java.lang.IllegalStateException: Module with the Main dispatcher is missing. Add dependency providing the Main dispatcher, e.g. 'kotlinx-coroutines-android'
at kotlinx.coroutines.internal.MissingMainCoroutineDispatcher.missing(MainDispatchers.kt:73)
at kotlinx.coroutines.internal.MissingMainCoroutineDispatcher.isDispatchNeeded(MainDispatchers.kt:54)
at kotlinx.coroutines.DispatchedKt.resumeCancellable(Dispatched.kt:373)
at kotlinx.coroutines.intrinsics.CancellableKt.startCoroutineCancellable(Cancellable.kt:25)
at kotlinx.coroutines.CoroutineStart.invoke(CoroutineStart.kt:109)
at kotlinx.coroutines.AbstractCoroutine.start(AbstractCoroutine.kt:160)
at kotlinx.coroutines.channels.ActorKt.actor(Actor.kt:121)
at kotlinx.coroutines.channels.ActorKt.actor$default(Actor.kt:112)....

提示Module with the Main dispatcher is missing该错误,问题可以复现,希望工程师可以解决一下该问题。kotlin版本 1.3.20,协程版本1.1.1

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.