Skip to content

Commit b92522f

Browse files
shyamnathpShyamQt
andauthored
Qt Bootstrap - Adapting to Qt 6.7 release (#2990)
* Qt lib.xml - add placeholder for bundled_libs * Qt Bootstrap: Set environment variables - remove QtNative.setEnvironmentVariable in favour of the Java API. - This removes the dependency on QtNative. --------- Co-authored-by: Shyamnath Premnadh <[email protected]>
1 parent d4a6e23 commit b92522f

File tree

2 files changed

+28
-9
lines changed

2 files changed

+28
-9
lines changed

pythonforandroid/bootstraps/qt/build/src/main/java/org/kivy/android/PythonActivity.java

+20-9
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
import android.content.pm.PackageManager;
2222

2323
import org.qtproject.qt.android.bindings.QtActivity;
24-
import org.qtproject.qt.android.QtNative;
2524

2625
public class PythonActivity extends QtActivity {
2726

@@ -52,6 +51,18 @@ public String getEntryPoint(String search_dir) {
5251
return "main.py";
5352
}
5453

54+
public void setEnvironmentVariable(String key, String value) {
55+
/**
56+
* Sets an environment variable based on key/value.
57+
**/
58+
try {
59+
android.system.Os.setenv(key, value, true);
60+
} catch (Exception e) {
61+
Log.e("Qt bootstrap", "Unable set environment variable:" + key + "=" + value);
62+
e.printStackTrace();
63+
}
64+
}
65+
5566
@Override
5667
public void onCreate(Bundle savedInstanceState) {
5768
this.mActivity = this;
@@ -69,14 +80,14 @@ public void onCreate(Bundle savedInstanceState) {
6980
String entry_point = getEntryPoint(app_root_dir);
7081

7182
Log.v(TAG, "Setting env vars for start.c and Python to use");
72-
QtNative.setEnvironmentVariable("ANDROID_ENTRYPOINT", entry_point);
73-
QtNative.setEnvironmentVariable("ANDROID_ARGUMENT", app_root_dir);
74-
QtNative.setEnvironmentVariable("ANDROID_APP_PATH", app_root_dir);
75-
QtNative.setEnvironmentVariable("ANDROID_PRIVATE", mFilesDirectory);
76-
QtNative.setEnvironmentVariable("ANDROID_UNPACK", app_root_dir);
77-
QtNative.setEnvironmentVariable("PYTHONHOME", app_root_dir);
78-
QtNative.setEnvironmentVariable("PYTHONPATH", app_root_dir + ":" + app_root_dir + "/lib");
79-
QtNative.setEnvironmentVariable("PYTHONOPTIMIZE", "2");
83+
setEnvironmentVariable("ANDROID_ENTRYPOINT", entry_point);
84+
setEnvironmentVariable("ANDROID_ARGUMENT", app_root_dir);
85+
setEnvironmentVariable("ANDROID_APP_PATH", app_root_dir);
86+
setEnvironmentVariable("ANDROID_PRIVATE", mFilesDirectory);
87+
setEnvironmentVariable("ANDROID_UNPACK", app_root_dir);
88+
setEnvironmentVariable("PYTHONHOME", app_root_dir);
89+
setEnvironmentVariable("PYTHONPATH", app_root_dir + ":" + app_root_dir + "/lib");
90+
setEnvironmentVariable("PYTHONOPTIMIZE", "2");
8091

8192
Log.v(TAG, "About to do super onCreate");
8293
super.onCreate(savedInstanceState);

pythonforandroid/bootstraps/qt/build/templates/libs.tmpl.xml

+8
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
<?xml version='1.0' encoding='utf-8'?>
22
<resources>
3+
4+
<!--
5+
The bunlded_libs placeholder is needed for QtLoader.java. Otherwise the application will crash.
6+
Adding extra libraries can be done through buildozer directly with android.add_libs_* option
7+
-->
8+
<array name="bundled_libs">
9+
</array>
10+
311
<array name="qt_libs">
412
<item>{{ arch }};c++_shared</item>
513
{%- for qt_lib in qt_libs %}

0 commit comments

Comments
 (0)