首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重新打开应用程序时的Moengage问题

重新打开应用程序时的Moengage问题
EN

Stack Overflow用户
提问于 2017-10-23 08:32:46
回答 2查看 485关注 0票数 0

当应用程序到达前台时,应用程序会崩溃。当应用程序被杀死并重新启动时,它不会崩溃,但是当它被最小化和重新打开时,它会崩溃,并出现以下异常

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的解决方案,但没有奏效。我对它感到困惑,因为它在重新启动时运行,而不是在从最小化状态到前台时运行。

以下是我的申请课程:

代码语言:javascript
复制
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:

代码语言:javascript
复制
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-23 11:08:41

检查您的LocationHandlerImpl.java文件,看看GoogleApiClient和LocationServices是否已解析。您可能还没有添加位置服务的依赖项。

如果它们未被解析,请将各自的依赖项添加到Gradle文件中。

'com.google.android.gms:play-services-location:XXX‘

同步并尝试再次运行它。这应该能做好这项工作

票数 1
EN

Stack Overflow用户

发布于 2017-10-24 02:27:22

如果您拥有location权限,则MoEngage SDK假设您的应用程序具有位置服务依赖关系,这里的情况也是如此。尽管如此,SDK提供了一种排除位置库的机制,以防您不想使用我们的地理围栏功能。这样做的办法如下:

代码语言:javascript
复制
compile ('com.moengage:moe-android-sdk:7.7.16') {
        exclude group: 'com.moengage', module: 'moe-location-lib'
    }

有关更多细节,您可以参考正式文档这里

PS:我是MoEngage SDK的贡献者之一。如果这件事没有解决,请告诉我。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46884998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档