我需要将现有的iPhone 3-D动作游戏代码转换为在Android上运行.最近,我在Android平台上开发了2D游戏,现在我正朝着3D发展.这些天我正在探索将iPhone/iPad和Symbian代码转换为在Android设备上运行的选项.
我是否应该再次使用OpenGL apis从头开始编写完整的iPhone 3-D游戏代码(之前使用OpenGL ES在Objective C中编写)?
我也成功安装并研究了Android NDK(特别是San Angles示例代码)的样本.我也在Android中使用OpenGL示例寻找3D游戏.
是否建议使用Android NDK来转换Android平台上的iPhone代码,或者我应该用Java编写代码?
我期待着您的一些建议.
我使用NDK将我的C/C++代码移植到Android游戏中,但是我无法入门.
我从developer.android.com下载了NDK-r5b,我已经安装了Cygwin.
我甚至无法运行Hello-jniNDK样本中提供的程序.
当我跑:
$ cd /cygdrive/c/android/android-ndk-r5b/samples/hello-jni
$ ndk-build
Run Code Online (Sandbox Code Playgroud)
我得到了ERROR: You are using a non-Cygwin compatible Make program.
我尝试安装GNUMake 3.81,但问题仍然存在.
我试图HELLO-JNI通过Eclipse IDE在NDK中运行示例程序.Android AVD上有一个强制关闭,logcat显示如下异常:
04-08 12:32:11.609: ERROR/AndroidRuntime(274): FATAL EXCEPTION: main
04-08 12:32:11.609: ERROR/AndroidRuntime(274):
java.lang.ExceptionInInitializerError
04-08 12:32:11.609: ERROR/AndroidRuntime(274): at
java.lang.Class.newInstanceImpl(Native Method)
04-08 12:32:11.609: ERROR/AndroidRuntime(274): at
java.lang.Class.newInstance(Class.java:1429)
04-08 12:32:11.609: ERROR/AndroidRuntime(274): at
android.app.Instrumentation.newActivity(Instrumentation.java:1021)
04-08 12:32:11.609: ERROR/AndroidRuntime(274): at
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:
2577)
04-08 12:32:11.609: ERROR/AndroidRuntime(274): at
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:
2679)
04-08 12:32:11.609: ERROR/AndroidRuntime(274): at
android.app.ActivityThread.access$2300(ActivityThread.java:125)
04-08 12:32:11.609: ERROR/AndroidRuntime(274): at
android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
04-08 12:32:11.609: ERROR/AndroidRuntime(274): …Run Code Online (Sandbox Code Playgroud) 我想知道如何从本机代码(即C++文件)直接访问图像,声音文件等资源.实际上我正在寻找任何可以帮助我使用asset_manager_jni.h方法的例子.
寻找建议.提前致谢.
带着敬意,
Atul Prakash Singh
java-native-interface android native android-ndk android-assets