Har*_*san 5 java android native-activity
我知道我们可以从另一个 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)
Run Code Online (Sandbox Code Playgroud)
我正在使用这段 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>
Run Code Online (Sandbox Code Playgroud)
谁能告诉我如何修复上面的 XML,以便在我的第一个基于 Java 的活动中我可以做这样的事情(如果可能的话)
Intent intent = new Intent(this, mynativeactivity.class);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
目前我无法编译此代码,因为编译器找不到 mynativeactivity
如果我理解正确的话,您的 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>
Run Code Online (Sandbox Code Playgroud)
将“YourJavaActivity”替换为 Java 活动的名称,将“YourNativeLibraryName”替换为创建的库的名称(不带“lib”前缀)。
如果您从 NativeActivity 派生,那么您还需要将 android.app.NativeActivity 更改为派生类的名称。
然后您可以根据需要开始本机活动。
| 归档时间: |
|
| 查看次数: |
3949 次 |
| 最近记录: |