Application.onCreate () не вызывается в отладочной сборке - PullRequest
0 голосов
/ 13 февраля 2020

App.onCreate () вообще не вызывается в отладочных сборках, но обычно вызывается в сборках выпуска. Я ожидаю, что он будет вызываться каждый раз, когда я нажимаю кнопку «Выполнить» в Android Studio. Если я помещу логи в static {} или onCreate () {}, они не появятся в журнале. Точки останова также не будут поражены. Android Версия Strudio - 3.5.3 с подключаемым плагином 3.5.3. Эта версия не имеет функции «Мгновенный запуск». Проблема также воспроизводилась в Android Studio 3.5.1. Я не понимаю, почему это произошло, потому что несколько дней go все работало нормально. Как исправить эту проблему? Это связано с системой сборки или телефоном?

Класс приложения:

public class App extends Application
{
    static
    {
        System.loadLibrary("some-library-lib");
        // Some logic
    }

    @Override
    public void onCreate()
    {
        super.onCreate();
        // Some logic
    }
}

AndroidManifest. xml

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

    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <!-- Another permissions -->

    <application
        android:name=".App"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity
            android:name=".StartupActivity"
            android:configChanges="orientation|keyboardHidden"
            android:screenOrientation="portrait"
            android:theme="@style/SplashTheme">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <!-- Another activities -->

    </application>
</manifest>

Я также пытался использовать полный набор Имя класса приложения в манифесте, как:

<application
        android:name="com.my_secret.package.App"

Но не имеет значения.

1 Ответ

0 голосов
/ 13 марта 2020

Проблема исчезла примерно через две недели. Я не знаю причину - никаких изменений в телефоне или системе сборки не было.
Я некоторое время работал с версией release, а затем неожиданно установил версию debug, и она начала отлично работает Я установил debug версии для всех своих проектов, и они работали.
Может быть, release/debug interchange имеет некоторый магический c эффект, но, возможно, нет.

...