問題タブ [qt-necessitas]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Qt Creator の --android-platform をデバッグ モードで android--1 に変更するにはどうすればよいですか?
Qt Creator を使用して Android デバイスで新しい Qt Quick アプリケーションを実行しようとしています。ただし、Qt Creator は引き続き Android API バージョン1を使用しますが、Android API バージョン 10 (別名 Android 2.3.3) をターゲットにしたいと考えています。
Debug->Start Debugging を実行し、物理デバイスとエミュレーターでarmeabi
またはを選択すると、Qt は不思議なことに をターゲットにし続けます。armeabi-v7a
android--1
"C:\Qt\5.4\android_armv5\bin\androiddeployqt.exe" --input C:/dev/qc/build-qc_mobile-Android_for_armeabi_GCC_4_9_Qt_5_4_0-Debug/android-libqc_mobile.so-deployment-settings.json --output C:/dev/qc/build-qc_mobile-Android_for_armeabi_GCC_4_9_Qt_5_4_0-Debug/android-build --deployment bundled --android-platform
android--1
--jdk C:/jdk1.8.0_05 --ant C:/eclipse/plugins/org.apache.ant_1.9.2.v201404171502/bin/ant.bat
デバッグ時に別の Android バージョンをターゲットにするようにプロジェクトを構成するにはどうすればよいですか?
参考までに、リリース モードの APK をデバイスにデプロイするとうまくいきます。デバッグモードが機能することを望んでいます。
java - トップレベルのプログラムを必要とせずに C++ ライブラリから Java コードを埋め込みますか?
QtCreator を使用して C++/Java アプリケーションを .NET にデプロイしていAndroid
ます。しかし、私の問題は、QtCreator がアプリを展開する方法に固有のものではない可能性があると思います。
特定の機能を提供する C++ ライブラリを作成したいと考えています。そのためには、ライブラリで Java クラスをインスタンス化する必要があります。この最後のクラスは、SDK 関数クラス (NDK/C++ API で利用できないもの) を実行するために使用されます。
C++ プログラムからの Java オブジェクトの作成と使用は正常に機能します。コンパイル/デプロイ中に .java ファイルをアプリケーション環境にパッケージ化すると、次の 2 つの方法で Java クラスを使用できます。
- を宣言
JNI_OnLoad
し、クラス ID、メソッド ID をロードし、後で jni を使用してそれらを呼び出します - Qt
QAndroidJniObject
オブジェクトを使用する (これは QtCreator に固有です)
問題は、C++ ライブラリから Java オブジェクトを作成して使用するときに発生します。.java ファイルが最上位アプリケーションにパッケージ化されている場合にのみ機能します。Javaをライブラリ自体とのみパッケージ化する方法が見つかりませんでした。つまり、私のライブラリを使用する必要がある人は、単純にライブラリにリンクするだけでなく、私のライブラリに必要な .java ファイルをパッケージ化する必要があります。これはカプセル化を破り、最終的な開発者がプログラムを作成し、単にライブラリをロードしたいだけで、それが独自に動作するために必要なすべてを埋め込むことを期待するのに苦労します...
私の質問は次のとおりです。ライブラリがJavaファイルを使用できるようにするために、このJavaファイルがトップレベルのプログラムパッケージの一部である必要がないように、ライブラリにJavaファイルを埋め込むにはどうすればよいですか?
簡単なサンプルを次に示します。MainWindow コンストラクターは、4 つの関数を呼び出して、Java オブジェクトを作成および使用しようとします。最初の 2 つの呼び出しのみが機能します...
main.cpp:
MyLib.h:
MyLib.cpp:
FooPrg.java:
FooLib.java:
jniload.pro:
jniload_lib.pro:
android - Qt を使用した Android アプリ用の Necessitas SDK
私を混乱させる2つのページがあります:
http://doc.qt.io/qt-5/android-support.html
と
https://wiki.qt.io/How_to_Create_and_Run_Qt_Application_for_Android
どちらのページでも、Qt を使用して Android アプリを作成する方法を説明しています。ただし、一方は Necessitas SDK を使用し、もう一方は使用していません。
アプリで Google-Cloud-Messaging サービスを使用して、通知を送受信できるようにしたいと考えています。
すでに Android アプリを作成しており、Necessitas SDK を使用しなくてもスマートフォンで正常に動作します。
だから私の質問は: この必要な SDK が必要ですか? もしそうなら、なぜですか?それとも、今までと同じように続けられますか?
qt - qmlで実装すると、ビデオの一部が繰り返し再生されます
qmlでビデオプレーヤーを作成しています。ビデオに沿って移動するスライダーを表示する必要があるため、スライダーの値は Mediaplayer の位置にバインドされます。
また、スライダーを手動で動かした場合は、ビデオの位置をスライダーの位置に移動する必要があります。
以下のコードを書いたのですが、スライドバーを動かすと警告が表示され、動画が小さい部分ごとに繰り返し再生されます。
警告は次のとおりです: qt-reserved-files/qml/QtQuick/Controls/Slider.qml:199:5: QML RangeModel: プロパティ "" のバインディング ループが検出されました
onValueChangedを設定しないと、スライダー バーが移動してもムービーがシークしません。これに対する解決策はありますか?