Elj*_*jay 1 c++ java qt android qtandroidextras
我试图使用带有字符串参数的 QAndroidJniObject 来调用 Qt C++ 类中的 Java 静态函数。
这是我的 Java 类,具有我正在调用的函数
public class StatusBar{
public static void setStatusBarBackgroundColor(Activity activity,String colorPref) {
// My code
}
}
Run Code Online (Sandbox Code Playgroud)
我从 C++ 调用这个函数
void ECApplicationInfo::changeStatusBarColor(QString color)
{
QAndroidJniObject::callStaticMethod<void>(
"com/ezeecube/ezeesync/StatusBar",
"setStatusBarBackgroundColor",
"(Landroid/app/Activity;)V",
activity,color);
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误
错误:无法通过“...”活动传递非平凡可复制类型“QString”类型的对象,颜色);
我怎样才能摆脱这个错误
您的函数签名的定义不正确。您还应该指定类型为 的第二个参数Ljava/lang/String;
。您还应该转换QString
为jstring
并将其作为参数传递:
QAndroidJniObject::callStaticMethod<void>(
"com/ezeecube/ezeesync/StatusBar",
"setStatusBarBackgroundColor",
"(Landroid/app/Activity;Ljava/lang/String;)V",
activity,QAndroidJniObject::fromString(color).object<jstring>());
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2495 次 |
最近记录: |