Integrating Umeng is a huge pitfall for non-Android developers. Here’s my experience with some common pitfalls like UMConfigure
not found, incorrect override
syntax in Kotlin (official docs use Java), and misleading official plugins. The actual process is simple:
- Start with native integration first - even for Flutter apps. Follow Android integration steps before using any Flutter plugin.
- Official documentation: Umeng Android Integration Guide (replace if link expires)
- Always use maven automatic integration (repeat 3x) for non-native developers
Native Setup in 3 Steps
-
Dependency configuration
- Add to project-level
android/build.gradle
:
repositories { maven { url 'https://repo1.maven.org/maven2/' } }
- Add to app-level
android/app/build.gradle
:
dependencies { implementation 'com.umeng.umsdk:common:9.4.4' implementation 'com.umeng.umsdk:asms:1.4.1' }
- Add to project-level
-
Permissions in
android/app/src/main/AndroidManifest.xml
:<manifest> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> <uses-permission android:name="android.permission.READ_PHONE_STATE"/> <application> <meta-data android:name="UMENG_APPKEY" android:value="YOUR_APP_KEY"/> </application> </manifest>
-
ProGuard rules in
android/app/proguard-rules.pro
:-keep class com.umeng.** {*;} -keepclassmembers class * { public <init>(org.json.JSONObject); }
Native Initialization
In android/app/src/main/kotlin/com/xxxxx/MainActivity.kt
:
import com.umeng.analytics.MobclickAgent
import com.umeng.commonsdk.UMConfigure
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
UMConfigure.preInit(this, "your_app_key", "Umeng")
}
Flutter Initialization
-
Add dependency in
pubspec.yaml
:dependencies: umeng_common_sdk: ^1.2.0
-
Initialize in Dart:
import 'package:umeng_common_sdk/umeng_common_sdk.dart'; void main() { UmengCommonSdk.initCommon('android_app_key', 'ios_app_key', 'Umeng'); runApp(MyApp()); }
-
Verify data transmission in Umeng Dashboard
Note: Keep monitoring real-time analytics in Umeng backend to confirm successful integration.