Android 重新打开应用程序时的Moengage问题
当应用程序出现在前台时,应用程序崩溃。 当应用程序被终止并重新启动时,它不会崩溃,但当它被最小化并重新打开时,它会崩溃,出现以下异常 java.lang.NoClassDefFoundError: com.moengage.locationlibrary.LocationHandlerImpl 位于java.lang.Class.classForName(本机方法) 位于java.lang.Class.forName(Class.java:324) 位于java.lang.Class.forName(Class.java:285) 位于com.moengage.location.GeoManager.getHandler(GeoManager.java:33) 位于com.moengage.core.moedipatcher.syncInAppsAndGeo(moedipatcher.java:209) 位于com.moengage.core.moedipatcher.onStart(moedipatcher.java:159) 位于com.moe.pushlibrary.moeheloper.onNewIntent(moeheloper.java:287) 位于com.moe.pushlibrary.moeheloper.onStartInternal(moeheloper.java:324) 在com.moe.pushlibrary.MoEActivityLifeCycleCallBacks.onActivityStarted上(MoEActivityLifeCycleCallBacks.java:33) 在android.app.Application.dispatchActivityStarted上(Application.java:205) 位于android.app.Activity.onStart(Activity.java:1146) 位于android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:542) 位于android.support.v7.app.AppCompatActivity.onStart(AppCompatActivity.java:177) 位于android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1237) 位于android.app.Activity.performStart(Activity.java:6253) 在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2379)上 位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 位于android.app.ActivityThread.-wrap11(ActivityThread.java) 在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)上 位于android.os.Handler.dispatchMessage(Handler.java:102) 位于android.os.Looper.loop(Looper.java:148) 位于android.app.ActivityThread.main(ActivityThread.java:5417) 位于java.lang.reflect.Method.invoke(本机方法) 在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run上(ZygoteInit.java:726) 位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)10-23 13:26:14.136 7406-7406/? I/进程:发送信号。PID:7406信号:9 我确实尝试了NoClassDefFoundError的解决方案,但没有成功。我对它在重新启动时运行感到困惑,但当它从最小化状态转到前台时,我就不知道了 以下是我的应用课程:Android 重新打开应用程序时的Moengage问题,android,moengage,Android,Moengage,当应用程序出现在前台时,应用程序崩溃。 当应用程序被终止并重新启动时,它不会崩溃,但当它被最小化并重新打开时,它会崩溃,出现以下异常 java.lang.NoClassDefFoundError: com.moengage.locationlibrary.LocationHandlerImpl 位于java.lang.Class.classForName(本机方法) 位于java.lang.Class.forName(Class.java:324) 位于java.lang.Class.forNa
public class AppController extends Application implements PushManager.OnTokenReceivedListener {
MoEHelper helper;
@Override
public void onCreate() {
super.onCreate();
helper = MoEHelper.getInstance(getApplicationContext());
helper.autoIntegrate(this);
PushManager.getInstance().setTokenObserver(this);
Log.e("TAG", "onCreate() AppController");
SharedPreferences pref = getApplicationContext().getSharedPreferences("MoTest", Context.MODE_PRIVATE);
if (pref.contains("newInstall")) {
helper.setExistingUser(true);
} else {
helper.setExistingUser(false);
}
}
@Override
public void onTokenReceived(String token) {
Log.e("TAG", "Appcontroller Token: " + token);
}
}
这是我的主要活动:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
检查您的LocationHandlerImpl.java文件,查看GoogleAppClient和LocationServices是否已解决。您可能没有添加位置服务的依赖项 如果未解决这些问题,请将各自的依赖项添加到Gradle文件中 'com.google.android.gms:play服务位置:XXX'
同步并尝试再次运行它。这应该可以完成任务检查您的LocationHandlerImpl.java文件,查看GoogleAppClient和LocationServices是否已解决。您可能没有添加位置服务的依赖项 如果未解决这些问题,请将各自的依赖项添加到Gradle文件中 'com.google.android.gms:play服务位置:XXX'
同步并尝试再次运行它。这应该可以完成这项工作如果您拥有位置权限,MoEngage SDK假定您的应用程序具有位置服务依赖项,这里的情况也是如此。 也就是说,SDK提供了一种排除位置库的机制,以防您不想使用我们的地理围栏功能。这可以通过以下方式完成:
compile ('com.moengage:moe-android-sdk:7.7.16') {
exclude group: 'com.moengage', module: 'moe-location-lib'
}
您可以参考官方文件了解更多详细信息
PS:我是MoEngage SDK的贡献成员之一。如果这个问题没有解决,请告诉我。MoEngage SDK假设您的应用程序具有位置服务依赖性(如果您具有位置权限),这里的情况也是如此。 也就是说,SDK提供了一种排除位置库的机制,以防您不想使用我们的地理围栏功能。这可以通过以下方式完成:
compile ('com.moengage:moe-android-sdk:7.7.16') {
exclude group: 'com.moengage', module: 'moe-location-lib'
}
您可以参考官方文件了解更多详细信息
PS:我是MoEngage SDK的贡献成员之一。如果这个问题没有解决,请告诉我