Application.onCreate() 未在调试版本中调用



App.onCreate(( 在调试版本中根本不被调用,但在发布版本中通常被调用。我希望每次按Android Studio的"运行"按钮时都会调用它。 如果我把日志放在静态{}或onCreate(({}中,它们不会出现在日志中。断点也不会命中。 Android Strudio 版本是 3.5.3,带有 gradle 插件 3.5.3。此版本没有"即时运行"功能。 问题也可以在Android Studio 3.5.1中重现。 我不明白为什么会这样,因为几天前一切都很好。 如何解决这个问题?它与构建系统还是手机有关?

应用类:

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

安卓清单.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>

我还尝试在清单中使用完全指定的 App 类名称,例如:

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

但没有任何区别。

大约两周后问题消失了。我不知道原因 - 没有对手机或构建系统进行任何更改。
我用release版本工作了一段时间,然后突然安装了debug版本,它开始工作正常。我已经为我的所有项目安装了debug版本,并且它们正在运行。
也许release/debug交换有一些神奇的效果,但也许不是。

我在自定义应用程序类中遇到了类似的问题。 特别是使用模拟器,如果您使用的是模拟器擦除缓存并重新启动或只是尝试使用真实设备。(如果您发现真实设备出现问题,只需重新启动设备(。就我而言,我只是使用了真实设备,调试器工作正常。

相关内容

最新更新