Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Crash on Android if Theme.NoTitleBar.Fullscreen is set in AndroidManifest.xml



  • Hello,

    I can't debug a Qt application if I add android:theme="@android:style/Theme.NoTitleBar.Fullscreen" to the AndroidManifest.xml file, debugger starts and crashes with the following error:

    W System.err: java.lang.NoSuchFieldException: No field mDrawable in class Landroid/graphics/drawable/ClipDrawable$ClipState; (declaration of 'android.graphics.drawable.ClipDrawable$ClipState' appears in /system/framework/framework.jar)
    W System.err: 	at java.lang.Class.getDeclaredField(Native Method)
    W System.err: 	at org.qtproject.qt5.android.ExtractStyle.getAccessibleField(ExtractStyle.java:404)
    W System.err: 	at org.qtproject.qt5.android.ExtractStyle.getDrawable(ExtractStyle.java:1074)
    W System.err: 	at org.qtproject.qt5.android.ExtractStyle.getLayerDrawable(ExtractStyle.java:628)
    W System.err: 	at org.qtproject.qt5.android.ExtractStyle.getDrawable(ExtractStyle.java:1051)
    W System.err: 	at org.qtproject.qt5.android.ExtractStyle.extractProgressBarInfo(ExtractStyle.java:1681)
    W System.err: 	at org.qtproject.qt5.android.ExtractStyle.extractProgressBar(ExtractStyle.java:1697)
    W System.err: 	at org.qtproject.qt5.android.ExtractStyle.<init>(ExtractStyle.java:2027)
    W System.err: 	at org.qtproject.qt5.android.QtActivityDelegate.loadApplication(QtActivityDelegate.java:608)
    W System.err: 	at java.lang.reflect.Method.invoke(Native Method)
    W System.err: 	at org.qtproject.qt5.android.bindings.QtLoader.loadApplication(QtLoader.java:241)
    W System.err: 	at org.qtproject.qt5.android.bindings.QtLoader.startApp(QtLoader.java:671)
    W System.err: 	at org.qtproject.qt5.android.bindings.QtActivityLoader.onCreate(QtActivityLoader.java:183)
    W System.err: 	at org.qtproject.qt5.android.bindings.QtActivity.onCreateHook(QtActivity.java:266)
    W System.err: 	at org.qtproject.qt5.android.bindings.QtActivity.onCreate(QtActivity.java:273)
    W System.err: 	at android.app.Activity.performCreate(Activity.java:7036)
    W System.err: 	at android.app.Activity.performCreate(Activity.java:7027)
    W System.err: 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1231)
    W System.err: 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2864)
    W System.err: 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2989)
    W System.err: 	at android.app.ActivityThread.-wrap11(Unknown Source:0)
    W System.err: 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1688)
    W System.err: 	at android.os.Handler.dispatchMessage(Handler.java:106)
    W System.err: 	at android.os.Looper.loop(Looper.java:164)
    W System.err: 	at android.app.ActivityThread.main(ActivityThread.java:6753)
    W System.err: 	at java.lang.reflect.Method.invoke(Native Method)
    W System.err: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:482)
    W System.err: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
    W System.err: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object java.lang.reflect.Field.get(java.lang.Object)' on a null object reference
    W System.err: 	at org.qtproject.qt5.android.ExtractStyle.getDrawable(ExtractStyle.java:1074)
    W System.err: 	at org.qtproject.qt5.android.ExtractStyle.getLayerDrawable(ExtractStyle.java:628)
    W System.err: 	at org.qtproject.qt5.android.ExtractStyle.getDrawable(ExtractStyle.java:1051)
    W System.err: 	at org.qtproject.qt5.android.ExtractStyle.extractProgressBarInfo(ExtractStyle.java:1681)
    W System.err: 	at org.qtproject.qt5.android.ExtractStyle.extractProgressBar(ExtractStyle.java:1697)
    W System.err: 	at org.qtproject.qt5.android.ExtractStyle.<init>(ExtractStyle.java:2027)
    W System.err: 	at org.qtproject.qt5.android.QtActivityDelegate.loadApplication(QtActivityDelegate.java:608)
    W System.err: 	at java.lang.reflect.Method.invoke(Native Method)
    W System.err: 	at org.qtproject.qt5.android.bindings.QtLoader.loadApplication(QtLoader.java:241)
    W System.err: 	at org.qtproject.qt5.android.bindings.QtLoader.startApp(QtLoader.java:671)
    W System.err: 	at org.qtproject.qt5.android.bindings.QtActivityLoader.onCreate(QtActivityLoader.java:183)
    W System.err: 	at org.qtproject.qt5.android.bindings.QtActivity.onCreateHook(QtActivity.java:266)
    W System.err: 	at org.qtproject.qt5.android.bindings.QtActivity.onCreate(QtActivity.java:273)
    W System.err: 	at android.app.Activity.performCreate(Activity.java:7036)
    W System.err: 	at android.app.Activity.performCreate(Activity.java:7027)
    W System.err: 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1231)
    W System.err: 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2864)
    W System.err: 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2989)
    W System.err: 	at android.app.ActivityThread.-wrap11(Unknown Source:0)
    W System.err: 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1688)
    W System.err: 	at android.os.Handler.dispatchMessage(Handler.java:106)
    W System.err: 	at android.os.Looper.loop(Looper.java:164)
    W System.err: 	at android.app.ActivityThread.main(ActivityThread.java:6753)
    W System.err: 	at java.lang.reflect.Method.invoke(Native Method)
    W System.err: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:482)
    W System.err: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
    W System.err: java.lang.NoSuchFieldException: No field mDrawable in class Landroid/graphics/drawable/ClipDrawable$ClipState; (declaration of 'android.graphics.drawable.ClipDrawable$ClipState' appears in /system/framework/framework.jar)
    W System.err: 	at java.lang.Class.getDeclaredField(Native Method)
    W System.err: 	at org.qtproject.qt5.android.ExtractStyle.getAccessibleField(ExtractStyle.java:404)
    W System.err: 	at org.qtproject.qt5.android.ExtractStyle.getDrawable(ExtractStyle.java:1074)
    W System.err: 	at org.qtproject.qt5.android.ExtractStyle.getLayerDrawable(ExtractStyle.java:628)
    W System.err: 	at org.qtproject.qt5.android.ExtractStyle.getDrawable(ExtractStyle.java:1051)
    W System.err: 	at org.qtproject.qt5.android.ExtractStyle.extractProgressBarInfo(ExtractStyle.java:1681)
    W System.err: 	at org.qtproject.qt5.android.ExtractStyle.extractProgressBar(ExtractStyle.java:1697)
    W System.err: 	at org.qtproject.qt5.android.ExtractStyle.<init>(ExtractStyle.java:2027)
    W System.err: 	at org.qtproject.qt5.android.QtActivityDelegate.loadApplication(QtActivityDelegate.java:608)
    W System.err: 	at java.lang.reflect.Method.invoke(Native Method)
    W System.err: 	at org.qtproject.qt5.android.bindings.QtLoader.loadApplication(QtLoader.java:241)
    W System.err: 	at org.qtproject.qt5.android.bindings.QtLoader.startApp(QtLoader.java:671)
    W System.err: 	at org.qtproject.qt5.android.bindings.QtActivityLoader.onCreate(QtActivityLoader.java:183)
    W System.err: 	at org.qtproject.qt5.android.bindings.QtActivity.onCreateHook(QtActivity.java:266)
    W System.err: 	at org.qtproject.qt5.android.bindings.QtActivity.onCreate(QtActivity.java:273)
    W System.err: 	at android.app.Activity.performCreate(Activity.java:7036)
    W System.err: 	at android.app.Activity.performCreate(Activity.java:7027)
    W System.err: 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1231)
    W System.err: 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2864)
    W System.err: 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2989)
    W System.err: 	at android.app.ActivityThread.-wrap11(Unknown Source:0)
    W System.err: 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1688)
    W System.err: 	at android.os.Handler.dispatchMessage(Handler.java:106)
    W System.err: 	at android.os.Looper.loop(Looper.java:164)
    W System.err: 	at android.app.ActivityThread.main(ActivityThread.java:6753)
    W System.err: 	at java.lang.reflect.Method.invoke(Native Method)
    W System.err: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:482)
    W System.err: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
    W System.err: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object java.lang.reflect.Field.get(java.lang.Object)' on a null object reference
    W System.err: 	at org.qtproject.qt5.android.ExtractStyle.getDrawable(ExtractStyle.java:1074)
    W System.err: 	at org.qtproject.qt5.android.ExtractStyle.getLayerDrawable(ExtractStyle.java:628)
    W System.err: 	at org.qtproject.qt5.android.ExtractStyle.getDrawable(ExtractStyle.java:1051)
    W System.err: 	at org.qtproject.qt5.android.ExtractStyle.extractProgressBarInfo(ExtractStyle.java:1681)
    W System.err: 	at org.qtproject.qt5.android.ExtractStyle.extractProgressBar(ExtractStyle.java:1697)
    W System.err: 	at org.qtproject.qt5.android.ExtractStyle.<init>(ExtractStyle.java:2027)
    W System.err: 	at org.qtproject.qt5.android.QtActivityDelegate.loadApplication(QtActivityDelegate.java:608)
    W System.err: 	at java.lang.reflect.Method.invoke(Native Method)
    W System.err: 	at org.qtproject.qt5.android.bindings.QtLoader.loadApplication(QtLoader.java:241)
    W System.err: 	at org.qtproject.qt5.android.bindings.QtLoader.startApp(QtLoader.java:671)
    W System.err: 	at org.qtproject.qt5.android.bindings.QtActivityLoader.onCreate(QtActivityLoader.java:183)
    W System.err: 	at org.qtproject.qt5.android.bindings.QtActivity.onCreateHook(QtActivity.java:266)
    W System.err: 	at org.qtproject.qt5.android.bindings.QtActivity.onCreate(QtActivity.java:273)
    W System.err: 	at android.app.Activity.performCreate(Activity.java:7036)
    W System.err: 	at android.app.Activity.performCreate(Activity.java:7027)
    W System.err: 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1231)
    W System.err: 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2864)
    W System.err: 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2989)
    W System.err: 	at android.app.ActivityThread.-wrap11(Unknown Source:0)
    W System.err: 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1688)
    W System.err: 	at android.os.Handler.dispatchMessage(Handler.java:106)
    W System.err: 	at android.os.Looper.loop(Looper.java:164)
    W System.err: 	at android.app.ActivityThread.main(ActivityThread.java:6753)
    W System.err: 	at java.lang.reflect.Method.invoke(Native Method)
    W System.err: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:482)
    W System.err: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
    W System.err: java.lang.NoSuchFieldException: No field mDrawable in class Landroid/graphics/drawable/ClipDrawable$ClipState; (declaration of 'android.graphics.drawable.ClipDrawable$ClipState' appears in /system/framework/framework.jar)
    W System.err: 	at java.lang.Class.getDeclaredField(Native Method)
    W System.err: 	at org.qtproject.qt5.android.ExtractStyle.getAccessibleField(ExtractStyle.java:404)
    W System.err: 	at org.qtproject.qt5.android.ExtractStyle.getDrawable(ExtractStyle.java:1074)
    W System.err: 	at org.qtproject.qt5.android.ExtractStyle.getLayerDrawable(ExtractStyle.java:628)
    W System.err: 	at org.qtproject.qt5.android.ExtractStyle.getDrawable(ExtractStyle.java:1051)
    W System.err: 	at org.qtproject.qt5.android.ExtractStyle.extractProgressBarInfo(ExtractStyle.java:1681)
    W System.err: 	at org.qtproject.qt5.android.ExtractStyle.extractAbsSeekBar(ExtractStyle.java:1707)
    W System.err: 	at org.qtproject.qt5.android.ExtractStyle.<init>(ExtractStyle.java:2031)
    W System.err: 	at org.qtproject.qt5.android.QtActivityDelegate.loadApplication(QtActivityDelegate.java:608)
    W System.err: 	at java.lang.reflect.Method.invoke(Native Method)
    W System.err: 	at org.qtproject.qt5.android.bindings.QtLoader.loadApplication(QtLoader.java:241)
    W System.err: 	at org.qtproject.qt5.android.bindings.QtLoader.startApp(QtLoader.java:671)
    W System.err: 	at org.qtproject.qt5.android.bindings.QtActivityLoader.onCreate(QtActivityLoader.java:183)
    W System.err: 	at org.qtproject.qt5.android.bindings.QtActivity.onCreateHook(QtActivity.java:266)
    W System.err: 	at org.qtproject.qt5.android.bindings.QtActivity.onCreate(QtActivity.java:273)
    W System.err: 	at android.app.Activity.performCreate(Activity.java:7036)
    W System.err: 	at android.app.Activity.performCreate(Activity.java:7027)
    W System.err: 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1231)
    W System.err: 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2864)
    W System.err: 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2989)
    W System.err: 	at android.app.ActivityThread.-wrap11(Unknown Source:0)
    W System.err: 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1688)
    W System.err: 	at android.os.Handler.dispatchMessage(Handler.java:106)
    W System.err: 	at android.os.Looper.loop(Looper.java:164)
    W System.err: 	at android.app.ActivityThread.main(ActivityThread.java:6753)
    W System.err: 	at java.lang.reflect.Method.invoke(Native Method)
    W System.err: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:482)
    W System.err: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
    

    Then, Qt Creators points me at a disassembler page.

    Here's the complete AndroidManifest.xml file:

    <?xml version="1.0"?>
    <manifest package="fr.fetacorp.SaveTheBall" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="1.0" android:versionCode="1" android:installLocation="auto">
        <application android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:hardwareAccelerated="true" android:name="org.qtproject.qt5.android.bindings.QtApplication" android:label="-- %%INSERT_APP_NAME%% --">
            <activity android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation" android:name="org.qtproject.qt5.android.bindings.QtActivity" android:label="-- %%INSERT_APP_NAME%% --" android:screenOrientation="portrait" android:launchMode="singleTop">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN"/>
                    <category android:name="android.intent.category.LAUNCHER"/>
                </intent-filter>
    
                <!-- Application arguments -->
                <!-- meta-data android:name="android.app.arguments" android:value="arg1 arg2 arg3"/ -->
                <!-- Application arguments -->
    
                <meta-data android:name="android.app.lib_name" android:value="-- %%INSERT_APP_LIB_NAME%% --"/>
                <meta-data android:name="android.app.qt_sources_resource_id" android:resource="@array/qt_sources"/>
                <meta-data android:name="android.app.repository" android:value="default"/>
                <meta-data android:name="android.app.qt_libs_resource_id" android:resource="@array/qt_libs"/>
                <meta-data android:name="android.app.bundled_libs_resource_id" android:resource="@array/bundled_libs"/>
                <!-- Deploy Qt libs as part of package -->
                <meta-data android:name="android.app.bundle_local_qt_libs" android:value="-- %%BUNDLE_LOCAL_QT_LIBS%% --"/>
                <meta-data android:name="android.app.bundled_in_lib_resource_id" android:resource="@array/bundled_in_lib"/>
                <meta-data android:name="android.app.bundled_in_assets_resource_id" android:resource="@array/bundled_in_assets"/>
                <!-- Run with local libs -->
                <meta-data android:name="android.app.use_local_qt_libs" android:value="-- %%USE_LOCAL_QT_LIBS%% --"/>
                <meta-data android:name="android.app.libs_prefix" android:value="/data/local/tmp/qt/"/>
                <meta-data android:name="android.app.load_local_libs" android:value="-- %%INSERT_LOCAL_LIBS%% --"/>
                <meta-data android:name="android.app.load_local_jars" android:value="-- %%INSERT_LOCAL_JARS%% --"/>
                <meta-data android:name="android.app.static_init_classes" android:value="-- %%INSERT_INIT_CLASSES%% --"/>
                <!-- Used to specify custom system library path to run with local system libs -->
                <!-- <meta-data android:name="android.app.system_libs_prefix" android:value="/system/lib/"/> -->
                <!--  Messages maps -->
                <meta-data android:value="@string/ministro_not_found_msg" android:name="android.app.ministro_not_found_msg"/>
                <meta-data android:value="@string/ministro_needed_msg" android:name="android.app.ministro_needed_msg"/>
                <meta-data android:value="@string/fatal_error_msg" android:name="android.app.fatal_error_msg"/>
                <!--  Messages maps -->
    
                <!-- Splash screen -->
                <!-- meta-data android:name="android.app.splash_screen_drawable" android:resource="@drawable/logo"/ -->
                <!-- meta-data android:name="android.app.splash_screen_sticky" android:value="true"/ -->
                <!-- Splash screen -->
    
                <!-- Background running -->
                <!-- Warning: changing this value to true may cause unexpected crashes if the
                              application still try to draw after
                              "applicationStateChanged(Qt::ApplicationSuspended)"
                              signal is sent! -->
                <meta-data android:name="android.app.background_running" android:value="false"/>
                <!-- Background running -->
    
                <!-- auto screen scale factor -->
                <meta-data android:name="android.app.auto_screen_scale_factor" android:value="false"/>
                <!-- auto screen scale factor -->
    
                <!-- extract android style -->
                <!-- available android:values :
                    * full - useful QWidget & Quick Controls 1 apps
                    * minimal - useful for Quick Controls 2 apps, it is much faster than "full"
                    * none - useful for apps that don't use any of the above Qt modules
                    -->
                <meta-data android:name="android.app.extract_android_style" android:value="full"/>
                <!-- extract android style -->
        </activity>
    
        <!-- For adding service(s) please check: https://wiki.qt.io/AndroidServices -->
    
        </application>
    
        <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="21"/>
        <supports-screens android:largeScreens="true" android:normalScreens="true" android:anyDensity="true" android:smallScreens="true"/>
    
        <!-- The following comment will be replaced upon deployment with default permissions based on the dependencies of the application.
             Remove the comment if you do not require these default permissions. -->
        <!-- %%INSERT_PERMISSIONS -->
    
        <!-- The following comment will be replaced upon deployment with default features based on the dependencies of the application.
             Remove the comment if you do not require these default features. -->
        <!-- %%INSERT_FEATURES -->
    
    </manifest>
    

    I'm using Qt 5.11.0 with android-21 (armeabi-v7a) as target platform.

    Do you have any ideas?


Log in to reply