5

この質問で説明されているように、別の Android アクティビティからアクティビティを呼び出すことができることを知っています。私の質問は、意図を介して、または他の方法を使用して、Android アクティビティからネイティブ アクティビティを呼び出すことはできますか? はいの場合、どのように?

Android.mk私のネイティブアクティビティのファイルは次のとおりであり、ネイティブアクティビティコードは正常に構築されています

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE    := mynativeactivity
LOCAL_SRC_FILES := main.c
LOCAL_LDLIBS    := -llog -landroid -lEGL -lGLESv1_CM
LOCAL_STATIC_LIBRARIES := android_native_app_glue
include $(BUILD_SHARED_LIBRARY)
$(call import-module,android/native_app_glue)

この xml を使用して、ネイティブ アクティビティをAndroidManifest.Xmlファイルに含めています。そして、私はここで間違いを犯していると思います。

 //...rest of the xml including my main java activity here
  <activity android:name="android.app.NativeActivity" android:label="mynativeactivity" >
            <meta-data android:name="android.app.mynativeactivity"                  android:value="native-activity" />
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

上記のXMLを修正して、最初のJavaベースのアクティビティでこのようなことができるようにする方法を誰か教えてもらえますか(可能であれば)

 Intent intent = new Intent(this, mynativeactivity.class);
 startActivity(intent);

現在、コンパイラが場所を特定できないため、このコードをコンパイルできませんmynativeactivity

4

3 に答える 3

3

おそらくこれは必要ありませんが、他の誰かがこれに出くわした場合に備えて

また、確認の呼び出しに変更する必要がありmynativeactivity.classますNativeActivity.classandroid_mainapp_dummy()

于 2012-03-25T21:38:22.620 に答える
2

私が正しく理解していれば、XMLは次のようになります。

  <activity android:name="YourJavaActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
  <activity     android:name="android.app.NativeActivity">
                <meta-data android:name="android.app.lib_name"
                android:value="YourNativeLibraryName" />
    </activity>

そして、「YourJavaActivity」をJavaアクティビティの名前に置き換え、「YourNativeLibraryName」を作成されるライブラリの名前に置き換えます(「lib」プレフィックスなし)。

NativeActivityから派生した場合は、android.app.NativeActivityを派生クラスの名前に変更する必要もあります。

その後、必要に応じてネイティブアクティビティを開始できます。

于 2011-09-20T23:45:57.123 に答える
0

これを試して :

Intent intent = new Intent(getApplicationContext(), MyNativeActivity.class);
                startActivity(intent);
于 2015-03-18T11:14:57.507 に答える