Android 错误,但我不知道确切原因

Android 错误,但我不知道确切原因,android,qt,android-intent,battery,Android,Qt,Android Intent,Battery,我想知道安卓的电池技术。我已经用broadcastreceiver完成并很好地完成了Java代码。但是,当我在Qt中使用java类获取电池时,其目的并不是从java代码运行的。所以我决定让它在Qt中运行 QAndroidJniObject activity = QAndroidJniObject::callStaticObjectMethod("org/qtproject/qt5/android/QtNative", "activity", "()Landroid/app/Activity;"

我想知道安卓的电池技术。我已经用broadcastreceiver完成并很好地完成了Java代码。但是,当我在Qt中使用java类获取电池时,其目的并不是从java代码运行的。所以我决定让它在Qt中运行

QAndroidJniObject activity =  QAndroidJniObject::callStaticObjectMethod("org/qtproject/qt5/android/QtNative", "activity", "()Landroid/app/Activity;");
if (activity.isValid())
{

        QAndroidJniObject callConstant = QAndroidJniObject::getStaticObjectField<jstring>("android/content/Intent", "ACTION_BATTERY_CHANGED");
        QAndroidJniObject callIntent("android/content/Intent",  "(Ljava/lang/String;)V", callConstant.object());

        QAndroidJniObject param = QAndroidJniObject::fromString("technology" ) ;


        mySubstring = callIntent.callObjectMethod("getStringExtra"
                                    ,"(Ljava/lang/String;)Ljava/lang/String;"
                                    ,param.object()) ;


         if(callIntent.isValid())
        {
             activity.callObjectMethod("startActivity", "(Landroid/content/Intent;)V", callIntent.object<jobject>());
            //activity.callMethod<void>("startActivity","(Landroid/content/Intent;)V", callIntent.object<jobject>()); 
        }
}

这两行代码都使程序严重停止。我还是不知道

             activity.callObjectMethod("startActivity", "(Landroid/content/Intent;)V", callIntent.object<jobject>());
            //activity.callMethod<void>("startActivity","(Landroid/content/Intent;)V", callIntent.object<jobject>());
职业选手周末好!
.

我发现解决的方法是在main中使用qtaddy::Android Activity.callMethod并更改MyActivity扩展QtActivity,而不是在Android中使用Activity或else。它很简单,通过这种方式我可以获得电池信息。这是解决问题的好办法。但是为什么我以前的代码是activity.callObjectMethodstartActivity,Landroid/content/Intent;五、 callIntent.object;使程序严重崩溃的原因是我还没有弄清楚。多谢各位