(这里使用安卓为例) 官网文档, 如果失效直接找到安卓集成即可. https://developer.umeng.com/docs/119267/detail/118584 对于我们这种不懂原生的人,别搞什么手动集成...android/app/src/main/kotlin/com/xxxxx/MainActivity.kt 第一个要注意的是引入包名, 光看官网文档看不出来, 需要自己去找demo看 import com.umeng.analytics.MobclickAgent...import com.umeng.commonsdk.UMConfigure # 在 onCreate 重写方法 UMConfigure.preInit(this, "appKey", "Umeng...") 到此原生的就完成了 Flutter 初始化 不要手动集成, 一切都要自动的依赖管理, 官方文档https://developer.umeng.com/docs/119267/detail/174923...在工程pubspec.yaml中加入友盟的依赖管理即可, 然后直接在用的地方UmengCommonSdk.initCommon('android app key', 'ios app key', 'Umeng
/UMCommon.framework/Modules mkdir xxx/Umeng/UMCommon.framework/Modules touch xxx/Umeng/UMCommon.framework.../Modules/module.modulemap cat xxx/Umeng/UMCommon.framework/Modules/module.modulemap.../UMShare.framework/Modules mkdir xxx/Umeng/UMShare.framework/Modules touch xxx/Umeng/UMShare.framework...= [ 'xxx/Umeng/*.framework', 'xxx/Umeng/SocialLibraries/Facebook/*.framework' ]...'xxx/Umeng/SocialLibraries/WeChat/libSocialWeChat.a' ] end
友盟多渠道打包 废话不多说,以友盟统计为例,在AndroidManifest.xml里面会有这么一段: <meta-data android:name="<em>UMENG</em>_CHANNEL" android...第一步 在 AndroidManifest.xml 里配置 PlaceHolder <meta-data android:name="<em>UMENG</em>_CHANNEL" android:value...="${<em>UMENG</em>_CHANNEL_VALUE}" /> 第二步 在 build.gradle 设置 ProductFlavors android { productFlavors... baidu { manifestPlaceholders = [UMENG_CHANNEL_VALUE: "baidu"] } ...的渠道 manifestPlaceholders = [UMENG_CHANNEL_VALUE: "umeng"] } lintOptions
正文 Umeng多渠道 我们在项目中会使用统计SDK,用的最流行的当属umeng了吧。这里我们就用友盟来说明。...用了友盟的App的清单文件AndroidManifest.xml中都会写上meta-data,来区分不同的渠道: <meta-data android:name="<em>UMENG</em>_CHANNEL"...="<em>UMENG</em>_CHANNEL" android:value="${<em>UMENG</em>_CHANNEL_VALUE}" /> 2.在app的build.gradle设置produceFlavors: productFlavors...= [UMENG_CHANNEL_VALUE: "qihoo"] } baidu { manifestPlaceholders = [UMENG_CHANNEL_VALUE: "baidu...= [UMENG_CHANNEL_VALUE: "wandoujia"] } qq { manifestPlaceholders = [UMENG_CHANNEL_VALUE
使用多渠道打包的方式,就需要把上面的value配置成下面的方式: 其中${UMENG_CHANNEL_VALUE}中的值就是你在gradle中自定义配置的值。...: "wandoujia"] } xiaomi{ manifestPlaceholders = [UMENG_CHANNEL_VALUE: "xiaomi"]...manifestPlaceholders = [UMENG_CHANNEL_VALUE: "360"] } } 其中[UMENG_CHANNEL_VALUE: “wandoujia”]就是对应...${UMENG_CHANNEL_VALUE}的值。
: 产品渠道,可以根据productFlavors,针对不同的渠道配置个性化apk 3、BuildVariants:每一个buildtype和flavor组成一个buildvariant 1.按照umeng...的要求,manifest文件中需要有(在application下,和activity是并列关系): <meta-data android:name="<em>UMENG</em>_CHANNEL..." android:value="${<em>UMENG</em>_CHANNEL_VALUE}" /> 2.app的build.gradle配置 1)写法一 productFlavors...xiaomi { manifestPlaceholders = [UMENG_CHANNEL_VALUE: "xiaomi"] } sc360 {...manifestPlaceholders = [UMENG_CHANNEL_VALUE: "360"] } baidu {
/uploads/apps/551ca857fd98c51076001a39/_umeng_%40_2_%40_ae5657334c1b05bfad5038796907f3af.apk","origin...(Class.java:272) 04-13 14:29:03.766: W/com.umeng.update.UmengUpdateAgent(9737): atcom.umeng.update.UmengUpdateAgent.c...(UmengUpdateAgent.java:57) 04-13 14:29:03.766: W/com.umeng.update.UmengUpdateAgent(9737): atcom.umeng.update.UmengUpdateAgent.b...(UmengUpdateAgent.java:682) 04-13 14:29:03.766: W/com.umeng.update.UmengUpdateAgent(9737): atcom.umeng.update.UmengUpdateAgent.a...(UmengUpdateAgent.java:27) 04-13 14:29:03.766: W/com.umeng.update.UmengUpdateAgent(9737): atcom.umeng.update.UmengUpdateAgent
field=umeng_push_notification_default_large_icon at com.umeng.message.common.c.a(Res.java:223) ...at com.umeng.message.common.c.d(Res.java:152) at com.umeng.message.UmengMessageHandler.getLargeIcon...(UmengMessageHandler.java:502) at com.umeng.message.UmengMessageHandler.a(UmengMessageHandler.java...:161) at com.umeng.message.UmengMessageHandler.handleMessage(UmengMessageHandler.java:71) at...at com.umeng.message.service.JobIntentServicea.a(JobIntentService.java:235) at com.umeng.message.service.JobIntentServicea.doInBackground
.** -keep public interface com.umeng.socialize.sensor.** -keep public interface com.umeng.scrshot.*....** -keep class com.facebook.** -keep class com.umeng.scrshot.** -keep public class com.tencent.*....** { *; } -keep class com.umeng.analytics.** { *; } -keep class com.umeng.common.** { *; }... -keep class com.umeng.newxp.** { *; } -keep class com.j256.ormlite.** { *; } -keep....** -keep public interface com.umeng.socialize.sensor.** -keep public interface com.umeng.scrshot
flavorDimensions "default" productFlavors { kuan { dimension "default" manifestPlaceholders = [UMENG_CHANNEL_VALUE...: "kuan"] } xiaomi { dimension "default" manifestPlaceholders = [UMENG_CHANNEL_VALUE: "xiaomi..."] } qh360 { dimension "default" manifestPlaceholders = [UMENG_CHANNEL_VALUE: "qh360"] }...baidu { dimension "default" manifestPlaceholders = [UMENG_CHANNEL_VALUE: "baidu"] } wandoujia...{ dimension "default" manifestPlaceholders = [UMENG_CHANNEL_VALUE: "wandoujia"] } } 或者: flavorDimensions
示例中的Channel ID我们要替换成不同渠道的名称,比如google...","google") } baidu { manifestPlaceholders.put("UMENG_CHANNEL","baidu")...UMENG_CHANNEL的内容替换为我们manifestPlaceholders中对应的value值。...}" android:name="UMENG_CHANNEL"/> <activity android:name=".MainActivity"...其中${UMENG_CHANNEL}就是一个占位符,它的变量名是UMENG_CHANNEL。构建的时候${UMENG_CHANNEL}将会被替换为google或者baidu。 现在我们运行.
weiboSDKCore_3.1.4.jar') compile files('libs/wechat-sdk-android-with-mta-1.1.6.jar') compile files('libs/umeng_social_tool.jar...') compile files('libs/umeng_social_net.jar') compile files('libs/umeng_social_api.jar') compile...; import android.content.Intent; import android.os.Bundle; import com.umeng.socialize.UMShareAPI; 4.MainApplication.java...需要添加引用: import com.xxx.module.SharePackage; //xxx为你的包名 import com.umeng.socialize.Config; import com.umeng.socialize.PlatformConfig...; import com.umeng.socialize.UMShareAPI; 5.以上配置完毕,运行依然报错“com.android.dex.DexIndexOverflowException: method
按照友盟官方文档说明,渠道信息通常需要在AndroidManifest.xml中配置如下值: <meta-data android:value="Channel ID" android:name="<em>UMENG</em>_CHANNEL...(一)在AndroidManifest.xml里设置动态渠道变量 <meta-data android:name="UMENG_CHANNEL" android:value="${UMENG_CHANNEL_VALUE...: "kuan"] } xiaomi { manifestPlaceholders = [UMENG_CHANNEL_VALUE: "xiaomi"] } qh360...= [UMENG_CHANNEL_VALUE: "baidu"] } wandoujia { manifestPlaceholders = [UMENG_CHANNEL_VALUE...上面这个配置的作用就是,为每个渠道包产生不同的 UMENG_CHANNEL_VALUE 的值。
(这里就不过多讲解了,直接看我的代码) 文档地址:http://dev.umeng.com/analytics/android-doc/integration?...appkey = ""; String channal = ""; try { appkey = PackageManagerUitls.getMateDataValue(this, "UMENG_APPKEY...<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.hfax.<em>umeng</em>" <uses-permission..." android:value="57d11e6467e58e9051000d7e" / <meta-data android:name="<em>UMENG</em>_CHANNEL" android...:value="${<em>UMENG</em>_CHANNEL_VALUE}" / <meta-data android:name="BASE_URL" android:value="${BASE_URL
-- 友盟统计配置 --> <meta-data android:name="<em>UMENG</em>_APPKEY" android:value="56f0b1ef67e58eded700015b..." > 使用Ant...打包的时候替换的渠道号就是 将Umeng替换为具体的渠道,比如将Umeng...release.keystore key.alias.password=123456 key.store.password=123456 #publish channel channelname=Umeng
.** { *; } -keep class com.umeng.** { *; } -keep class com.umeng.analytics.** { *; }...-keep class com.umeng.common.** { *; } -keep class com.umeng.newxp.** { *; } -keep class....** -keep public interface com.umeng.socialize.sensor.** -keep public interface com.umeng.scrshot....** #不混淆该类及其成员变量 -keep public class com.umeng.socialize.* {*;} -keep public class javax.** -...keep public class android.webkit.** -keep class com.facebook.** -keep class com.umeng.scrshot.
Mainfest 文件中添加一个键值对,这里的value 我定义为 “UMENG_CHANNEL_VALUE”(当然实际应用中可以根据自己的需要命名),后面打包的时候会对这个值进行替换。... 2....: "xiaomi"] } _360 { manifestPlaceholders =[UMENG_CHANNEL_VALUE: "_360"]... } baidu { manifestPlaceholders =[UMENG_CHANNEL_VALUE: "baidu"] }... wandoujia { manifestPlaceholders =[UMENG_CHANNEL_VALUE: "wandoujia"] }
clz.getSuperclass() == null) { return "WXEntryActivity配置不正确,您使用的是精简版,请使WXEntryActivity继承com.umeng.weixin.callback.WXCallbackActivity...clz.getSuperclass().toString().contains("com.umeng.weixin")) { return "WXEntryActivity配置不正确...,您使用的是精简版,请使WXEntryActivity继承com.umeng.weixin.callback.WXCallbackActivity"; } } else {...clz.getSuperclass().toString().contains("com.umeng.socialize")) { return "WXEntryActivity配置不正确...,您使用的是完整版,请使WXEntryActivity继承com.umeng.socialize.weixin.view.WXCallbackActivity"; } }
################## -libraryjars libs/umeng-analytics-v5.2.4.jar -keep class com.umeng.analytics.** {*...;} -dontwarn com.umeng.analytics.** #-keep public class * extends com.umeng.** #-keep public class...* extends com.umeng.analytics.** #-keep public class * extends com.umeng.common.** #-keep public...class * extends com.umeng.newxp.** -keep class com.umeng.** { *; } -keep class com.umeng.analytics....** -dontwarn org.apache.commons.** -keep public class * extends com.umeng.** -keep class com.umeng
2、几种打包方式 友盟 UMeng Android Studio自带 美团 Walle 3、开始使用 3.1 友盟UMeng 第一步:在AndroidManifest中添加 <meta-data...android:name="<em>UMENG</em>_CHANNEL" android:value="${channel}" / 第二步:在build.gradle中添加,baidu {}为指定渠道名称简写...qihu360 {} yingyongbao {} huawei {} } productFlavors.all { flavor - flavor.manifestPlaceholders = [UMENG_CHANNEL...3.2 Android Studio自带 Android Studio多形态打包与友盟打包方式相同,但是标签<meta-data 中name可自行定义,不限制为”UMENG_CHANNEL” <meta-data...android:name="<em>UMENG</em>_CHANNEL" //可以随意定义 android:value="${channel}" / 3.3 美团 Walle 第一步:配置根build.gradle
领取专属 10元无门槛券
手把手带您无忧上云