第四节sdl android编译
工程地址:http://code.google.com/p/kudou-player/
----------------------------------------------
由于支持android平台的SDL版本必须是SDL-1.3以上,而且SDL-2.0改动比较大,所以先选用SDL-1.3作为播放器音视频输出使用。
下载SDL-1.3
cd /home/xdpan/work/
axel -n4 http://www.libsdl.org/tmp/SDL-1.3.tar.gz
tar -xvf SDL-1.3.tar.gz
cd SDL-1.3.0-6248
按照README.android的指引,如下操作:
cdandroid-project/jni/ && mkdir SDL
cp ../../src/SDL/ -R && cp ../../include/SDL/ -R && cp ../../Android.mkSDL/
vim src/Android.mk 将 YourSourceHere.c 改成main.c
在src在建立main.c内容如下:
#include"SDL.h"
int main(intargc, char* argv[])
{
SDL_Window* window;
SDL_Renderer* renderer;
// Initialize SDL.
if (SDL_Init(SDL_INIT_VIDEO) < 0)
return 1;
// Create the window where we willdraw.
window =SDL_CreateWindow("SDL_RenderClear",
SDL_WINDOWPOS_CENTERED,SDL_WINDOWPOS_CENTERED,
512, 512,
SDL_WINDOW_SHOWN);
// We must call SDL_CreateRenderer inorder for draw calls to affect this window.
renderer = SDL_CreateRenderer(window,-1, 0);
// Select the color for drawing. It isset to red here.
SDL_SetRenderDrawColor(renderer, 255,0, 0, 255);
// Clear the entire screen to ourselected color.
SDL_RenderClear(renderer);
// Up until now everything was drawnbehind the scenes.
// This will show the new, red contentsof the window.
SDL_RenderPresent(renderer);
// Give us time to see the window.
SDL_Delay(5000);
// Always be sure to clean up
SDL_Quit();
return 0;
}
ndk-build -j4
编译完成以后,创建eclipse工程启动,看到红色activity及成功。
错误解决:
如果编译时出现:
/home/xdpan/ndkr8/build/gmsl/__gmsl:512:*** non-numeric second argument to `wordlist' function: ''. Stop.
需要在AndroidManifest.xml添加
<uses-sdkandroid:minSdkVersion="3" />
如下红色所示:
<?xmlversion="1.0" encoding="utf-8"?>
<manifestxmlns:android="http://schemas.android.com/apk/res/android"
package="org.libsdl.app"
android:versionCode="1"
android:versionName="1.0">
<uses-sdkandroid:minSdkVersion="3" />
<applicationandroid:label="@string/app_name"
android:icon="@drawable/icon">
<activityandroid:name=".SDLActivity"
android:label="@string/app_name">
<intent-filter>
<actionandroid:name="android.intent.action.MAIN" />
<categoryandroid:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
源工程件如下(或者在虚拟机对应目录中提取):