当应用程序到达前台时,应用程序会崩溃。当应用程序被杀死并重新启动时,它不会崩溃,但是当它被最小化和重新打开时,它会崩溃,并出现以下异常
com.moengage.locationlibrary.LocationHandlerImpl at java.lang.Class.classForName(原生方法) at java.lang.Class.forName(Class.java:324)在com.moengage.location.GeoManager.getHandler(GeoManager.java:33)的java.lang.Class.forName(Class.java:285)在com.moengage.core.MoEDispatcher.syncInAppsAndGeo(MoEDispatcher.java:209) at com.moengage.core.MoEDispatcher.onStart(MoEDispatcher.java:159) at com.moe.pushlibrary.MoEHelper.onNewIntent(MoEHelper.java:287)在com.moe.pushlibrary.MoEHelper.onStartInternal(MoEHelper.java:324) at com.moe.pushlibrary.MoEActivityLifeCycleCallBacks.onActivityStarted(MoEActivityLifeCycleCallBacks.java:33)在android.app.Application.dispatchActivityStarted(Application.java:205) at android.app.Activity.onStart(Activity.java:1146) at android.support。v4.app.FragmentActivity.onStart(FragmentActivity.java:542) at android.support.v7.app.AppCompatActivity.onStart(AppCompatActivity.java:177) at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1237)在android.app.Activity.performStart(Activity.java:6253) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2379)在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) at android.app.ActivityThread.-wrap11(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)在android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148)在android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(原生方法) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 10-23 13:26:14.136 7406-7406/?I/Process:发送信号。PID: 7406 SIG: 9
我确实尝试了NoClassDefFoundError的解决方案,但没有奏效。我对它感到困惑,因为它在重新启动时运行,而不是在从最小化状态到前台时运行。
以下是我的申请课程:
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);
}
}这是我的MainActivity:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}发布于 2017-10-23 11:08:41
检查您的LocationHandlerImpl.java文件,看看GoogleApiClient和LocationServices是否已解析。您可能还没有添加位置服务的依赖项。
如果它们未被解析,请将各自的依赖项添加到Gradle文件中。
'com.google.android.gms:play-services-location:XXX‘
同步并尝试再次运行它。这应该能做好这项工作
发布于 2017-10-24 02:27:22
如果您拥有location权限,则MoEngage SDK假设您的应用程序具有位置服务依赖关系,这里的情况也是如此。尽管如此,SDK提供了一种排除位置库的机制,以防您不想使用我们的地理围栏功能。这样做的办法如下:
compile ('com.moengage:moe-android-sdk:7.7.16') {
exclude group: 'com.moengage', module: 'moe-location-lib'
}有关更多细节,您可以参考正式文档这里。
PS:我是MoEngage SDK的贡献者之一。如果这件事没有解决,请告诉我。
https://stackoverflow.com/questions/46884998
复制相似问题