NDK在命令行中构建以重建我的应用程序

时间:2016-06-28 08:18:43

标签: java android android-ndk

我的项目使用本机库。当我更改包名称时,我收到了以下错误。

代码:    找不到本机方法:

 com.nooshindroid.yastashir.controller.JNIServer.get_number_of_processors:()I
                                                                            at com.nooshindroid.yastashir.controller.JNIServer.get_number_of_processors(Native Method)
                                                                            at com.nooshindroid.yastashir.controller.JNIServer.runServer(JNIServer.java:27)
                                                                            at com.nooshindroid.yastashir.game.FreebloksActivity.startNewGame(FreebloksActivity.java:520)
                                                                            at com.nooshindroid.yastashir.game.FreebloksActivity$16.onClick(FreebloksActivity.java:774)
                                                                            at com.nooshindroid.yastashir.game.ColorListDialog.onItemClick(ColorListDialog.java:79)

当我上网时,我明白我必须在命令行中重建我的JNI文件夹。 在命令行中,我不知道如何提供项目路径。 我读到某个地方,我必须这样写。

 cd <project>
 $ <ndk>/ndk-build

我不知道做这项工作的步骤。 它显示了我的项目路径,当我写Dir时,它会显示我文件夹中存在的所有内容。 但没有任何改变。

2 个答案:

答案 0 :(得分:0)

除非另行指定,否则在使用JNI时,包名称是它在C代码中查找的函数名称的一部分。因此,如果您在Java中更改包名称,则还需要更改所有C代码JNI函数名称。

答案 1 :(得分:0)

正如@GabeSechan所说,您需要编辑C或C ++代码以匹配新的包名称。更改包名称时,目录结构会更改。如果您不编辑要匹配的C或C ++代码,则无法找到这些方法。

您需要从

更改JNI方法
Java_com_old_package_name_methodName 

Java_com_new_package_name_methodName 

请参阅JNI文档了解example

重命名方法后重建您的本机代码。