自定义应用程序类的onCreate()方法从未被调用

3

我正在尝试在自定义的Application类中初始化Parse:

import android.app.Application;
import android.util.Log;

import com.parse.Parse;
import com.parse.ParseException;
import com.parse.ParseInstallation;
import com.parse.SaveCallback;

public class SomeApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        initializeParse();
    }

    private void initializeParse() {
        Parse.setLogLevel(Parse.LOG_LEVEL_VERBOSE);
        Parse.initialize(new Parse.Configuration.Builder(this)
                .applicationId("##########")
                .clientKey("############")
                .server("https://#####.com/parse/")
                .build()
        );
        ParseInstallation installation = ParseInstallation.getCurrentInstallation();
        installation.saveInBackground(new SaveCallback() {
            @Override
            public void done(ParseException e) {
                // Do something here
            }
        });
    }

}

我已经在 AndroidManifest.xml 中声明了这个应用程序:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.test.someproject">

    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:name=".SomeApplication"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".AnotherActivity"/>
    </application>

</manifest>

但是我的自定义应用程序从未被调用。我尝试在onCreate方法上放置日志和断点,清理项目,重新构建项目,关闭并重新打开Android Studio,卸载并重新安装应用程序等等...所以,我需要帮助。

谢谢!


@ViktorYakunin 是的!日志、断点、System.out... - fsnasser
@Swr7der,这是一个应用程序类,而不是活动(Activity)... - fsnasser
你的应用程序需要一个入口点来启动,这可以是Activity、Service或BroadcastReceiver。 - Viktor Yakunin
@ViktorYakunin 我有一个入口点。它是我的MainActivity类,并且在AndroidManifest.xml中声明。 - fsnasser
@Akeshwar 1. 是的,MainActivity与SomeApplication在同一个包中。2. 是的,MainActivity中的方法正常调用。 - fsnasser
显示剩余5条评论
3个回答

12

禁用“即时运行”、“清理构建”、“重新构建项目”,然后再次运行。 我曾遇到相同的问题。禁用即时运行对我有用。很奇怪应用程序类没有被调用。但它真的发生了。


我花了半天时间来解决它,最后原来是即时运行导致的。 这是我最后一次使用这个功能! 谢谢! - dora2010
谢谢,你节省了我很多时间。 - foxis
禁用即时运行后可以正常工作。重新启用会出现相同的错误。 - kirtan403
这没什么奇怪的。如果即时运行是“问题”,那么应用程序类至少必须初始化一次。即时运行的重点正是,如果您只想在“中间”测试小更改,则不必再次运行整个初始化。而且现在即时运行有一个额外的按钮,像“应用代码更改”吗?那么解决方案就很简单了,不要按它。 - The incredible Jan
当这个问题发生时,我没有通过即时运行来运行应用程序。这是一个正常的运行,这意味着我们的自定义应用程序类应该被调用。 幸运的是,在新的“应用代码更改”功能中不会出现这些类型的错误 - 只要我们不按它,它就不会影响任何东西。 - muthuraj

1
在我的情况下,我忘记在清单文件中声明:
<application 
    android:name=".App" 
...>

0

这个对我有用 - 尝试在你的清单文件中使用这个属性:

<application 
android:name=".SomeApplication"
android:usesCleartextTraffic="true"

与伊万2年前写的完全一样... - The incredible Jan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接