android NDK构建问题

时间:2012-10-25 07:17:55

标签: android android-ndk

当我在这里尝试NDK构建命令时,我得到了错误

        D:\AndroidWorkSpace\cppTestProj>D:\android-ndk-r8b-windows\android-ndk-r8b\ndk-b
uild.cmd
Android NDK: WARNING: Unsupported source file extensions in jni/Android.mk for m
odule cppTestProj
Android NDK:   LOCAL_SRC_FILES :=
"Compile++ thumb : cppTestProj <= maintestapp.cpp
jni/maintestapp.cpp:1:19: fatal error: iostream: No such file or directory
compilation terminated.
make: *** [obj/local/armeabi/objs/cppTestProj/maintestapp.o] Error 1

JNI文件夹包含以下文件:

maintestapp.cpp
Test_array_type.cpp
Test_array_type.h

请你告诉我这个问题。我没有使用Cygwin。我错过了任何文件吗?

这是make文件

    LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE    := cppTestProj
LOCAL_SRC_FILES := LOCAL_SRC_FILES := maintestapp.cpp \
                   Test_array_type.cpp

include $(BUILD_SHARED_LIBRARY)

这是cpp文件

#include<iostream>
#include"Test_array_type.h"
#include<stdio.h>
#include<conio.h>
using namespace std;
int main()
{
    Test_array_type test_array;
    Test_array_type *ptest_array1;

    test_array.AddToList(10);
    test_array.AddToList(20);
    test_array.AddToList("Basha");
    test_array.PrintList();
    ptest_array1 = test_array.clonelist();
    test_array.DeleteFromList(3);
    test_array.AddToList(10);
    test_array.AddToList(20);
    test_array.AddToList(30);
    test_array.AddToList(40);
    test_array.AddToList(true);
    test_array.AddToList("Java Beon APP");
    test_array.PrintList();
    ptest_array1->PrintList();
    getch();
    return true;
}

2 个答案:

答案 0 :(得分:5)

您不应该从项目jni文件夹中运行'ndk-build'命令。在项目的根目录中执行Android.mk文件运行ndk-bild命令。

您的Android.mk应该是这样的

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE    := cppTestProj
LOCAL_SRC_FILES := maintestapp.cpp \
                   Test_array_type.cpp

include $(BUILD_SHARED_LIBRARY)

然后运行ndk-build命令

您可以看到示例Android.mk文件

的此链接

<强>更新

static {
        System.loadLibrary("hello-jni");
    }

有关详细信息,请参阅示例项目的HelloJni.java文件。

由于

答案 1 :(得分:-1)

你需要添加LOCAL_C_INCLUDES并包含你的visual C ++ include文件夹,因为你很容易使用它。