exception-Android之ndk开发,使用ant自动创建头文件 出错

问题描述

Android之ndk开发,使用ant自动创建头文件 出错

这是ant源码
<?xml version="1.0" encoding="UTF-8"?>

description

<!-- =================================
      target: BuildAllHeaders
     ================================= -->
<target name="BuildAllHeaders" >
    <antcall target="BuildGetStringHeader"></antcall>
    <antcall target="BuildGetIntHeader"></antcall>
</target>

<!-- - - - - - - - - - - - - - - - - -
      target: depends
     - - - - - - - - - - - - - - - - - -->
<target name="BuildGetStringHeader">
    <javah destdir="./jni" classpath="./bin/classes/" class="com.longertek.hellondk.GetString"></javah>
</target>
<!-- - - - - - - - - - - - - - - - - -
      target: BuildGetIntHeader
     - - - - - - - - - - - - - - - - - -->
<target name="BuildGetIntHeader">

</target>

双击ant出现如下错误
Buildfile: E:workspaceAndroidHelloNDKbuilder_headers.xml
BuildAllHeaders:
BuildGetStringHeader:
[javah] Exception in thread "main" java.lang.NullPointerException
[javah] at com.sun.tools.javah.JavahTask.run(JavahTask.java:503)
[javah] at com.sun.tools.javah.JavahTask.run(JavahTask.java:329)
[javah] at com.sun.tools.javah.Main.main(Main.java:46)

BUILD FAILED
E:workspaceAndroidHelloNDKbuilder_headers.xml:19: The following error occurred while executing this line:
E:workspaceAndroidHelloNDKbuilder_headers.xml:27: compilation failed

Total time: 880 milliseconds
这个错误是什么原因呢

解决方案

提示编译错误,你的页面上的代码有问题。

解决方案二:

package com.longertek.hellondk;

public class GetString {
public static native String getStr();
}


这个是我的GetString类的代码
package com.longertek.hellondk;

import android.app.Activity;
import android.app.ActionBar;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.os.Build;

public class MainActivity extends Activity {
static{
System.loadLibrary("HelloNDK");
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    TextView text = (TextView) super.findViewById(R.id.tv);
    text.setText(GetString.getStr());
}

}
这是main代码,


时间: 2024-11-08 19:01:17

exception-Android之ndk开发,使用ant自动创建头文件 出错的相关文章

Android Studio NDK开发同时加载多个SO文件时该如何配置

问题描述 Android Studio NDK开发同时加载多个SO文件时该如何配置 使用AS学习NDK开发时,当DEMO中只用到一个SO文件,开发.调试均正常. AS在开发NDK时是不需要手动编写Android.mk和Application.mk的,而通过配置build.gradle文件,可以自动在build目录下生成Android.mk,但是在配置build.gradle文件时,发现在ndk{...}中,只能配置一个moduleName,而这个moduleName正是编译后生成的SO文件名,请

android ndk adt自动生成头文件问题。

问题描述 android ndk adt自动生成头文件问题. android ndk adt自动生成头文件时候,在项目src目录下打开cmd.运行javah加adt复制的方法包名,为什么提示找不到com.zhhd.simplejni.MainActivity的类文件.在bin/classes也不行.怎么办,卡在这么个地方太闹心了 解决方案 javah -classpath . -jni 这里点表示当前路径.

JNI编程基础(二)——Android Studio NDK开发

由于笔者目前的工作是Android开发,所以在JNI开发系列博客中穿插一篇AndroidStudio NDK开发介绍. 随着Android Studio 2.2的推出,Android Studio的NDK开发支持Cmake和ndk-build两种方式,简化了Android Studio上NDK开发流程,提升了开发效率.接下来就介绍下两种开发方式. 1. CMake CMake是一个跨平台的编译(安装)工具,支持通过用较为简单的语言来描述编译(安装)过程,最后输出适配不同平台的makefile货p

使用FSO自动创建多级文件夹

当我们用fso来生成静态页面的时候,通常都会希望生成的位置能整洁,明了.比如按年月日来划分,那么就会需要得到一个形如:"2009/6/"这样或者更多级的文件夹,所以我就写了一个自动创建多级文件夹的函数,在生成静态页面等方面使用非常方便. 当我们用fso来生成静态页面的时候,通常都会希望生成的位置能整洁,明了.比如按年月日来划分,那么就会需要得到一个形如:"2009/6/"这样或者更多级的文件夹,所以我就写了一个自动创建多级文件夹的函数,在生成静态页面等方面使用非常方

使用FSO自动创建多级文件夹的函数

开启FSO权限 在 开始-"运行"中执行regsvr32.exe scrrun.dll即可.如想关闭FSO权限,在上述命令中加/u参数.注册表中的键值位置:HKEY_CLASS_BOOT\F.S.O .FSO中有个方法是CreateFolder,但是这个方法只能在其上一级文件夹存在的情况下创建新的文件夹,所以我就写了一个自动创建多级文件夹的函数,在生成静态页面等方面使用非常方便.函数: 以下为引用的内容:' -------------------------------- ' 自动创建

在ASP中自动创建多级文件夹的函数

创建|函数 FSO中有个方法是CreateFolder,但是这个方法只能在其上一级文件夹存在的情况下创建新的文件夹,所以我就写了一个自动创建多级文件夹的函数,在生成静态页面等方面使用非常方便. 函数: --------------------------------' 自动创建指定的多级文件夹' strPath为绝对路径' 引用请保留版权' by im286_Anjer' 2005-4-3Function AutoCreateFolder(strPath) ' As Boolean       

在ASP中自动创建多级文件夹的函数(使用FSO)

 FSO中有个方法是CreateFolder,但是这个方法只能在其上一级文件夹存在的情况下创建新的文件夹,所以我就写了一个自动创建多级文件夹的函数,在生成静态页面等方面使用非常方便.函数:  ' --------------------------------' 自动创建指定的多级文件夹' strPath为绝对路径' 引用请保留版权' by im286_Anjer' 2005-4-3Function AutoCreateFolder(strPath) ' As Boolean        On

Eclipse中如何自动添加头文件(add include)

在使用Eclipse写程序时, 经常遇到需要找头文件的问题, 在Eclipse中, 包含自动添加头文件的功能; 可以在Java, C++等插件中, 自动添加; 位置: Source -> Add Include (Ctrl+Shift+N): 作者:csdn博客 u012515223 更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/Java/

Makefile自动生成头文件依赖

前言 Makefile自动生成头文件依赖是很常用的功能,本文的目的是想尽量详细说明其中的原理和过程. Makefile模板 首先给出一个本人在小项目中常用的Makefile模板,支持自动生成头文件依赖. CC = gcc CFLAGS = -Wall -O INCLUDEFLAGS = LDFLAGS = OBJS = seq.o TARGETS = test_seq .PHONY:all all : $(TARGETS) test_seq:test_seq.o $(OBJS) $(CC) -o