有谁搞定了android的JNI?javah总是提示找不到类。 本帖最后由 lcb 于 2011-09-18 18:15:56 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 为什么不用NDK?http://mindtherobot.com/blog/452/android-beginners-ndk-setup-step-by-step/ 你是个什么JNI啊。 怎么还找android.app.Activity去了。。专门造个jni的class试试 javah -d <outputdir> -classpath <classpath> <fully_qualified_class> javah -jni com.example.HelloWorld com.example 是的你package倘若路径为: /home/user/com/example/HelloWorld.class那么在/home/user执行javah 这个问题 应该是你路径的问题 说明你路径一定写错啦 你直接把你编译好的那个.class 放在跟工程的同一个目录 就是跟主目录同级 就应该可以啦 建议用下面两条命令:d:\BACKUP\workspace\helloworld\bin\com\simon>javac HelloworldActivity.javad:\BACKUP\workspace\helloworld\bin\com\simon>javah -jni HelloworldActivity NDK我已经装了,但javah命令貌似和NDK没有什么关系吧?就是一个简单的空Android工程啊:package com.simon;import android.app.Activity;import android.os.Bundle;import android.util.Log;public class HelloworldActivity extends Activity { private static final String TAG = "HelloWorld"; static { System.loadLibrary("helloworld"); } private native String printJNI(); /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Log.d(TAG, "Activity call JNI: " + printJNI()); }} 主要是没有和android里面的class连接,我测试了下,我用的是2.2版本的,然后就进去sdk里面的 xxx-8目录下,把android.jar复制,改名为android.rar,然后解压为一个名叫android的文件夹,删掉android.rar,进去android文件夹,把目录复制,到classpath里面加上去,ok了 加到哪个classpath?系统变量还是eclipse的java application里?都加了,还是不行 网上说的很分散,经过一天的查询和无数的失败后发现原来是这样。1. 如10楼所说:根据android系统不同在不同版本下生成一个android文件夹。2. 系统变量设置:(1)我的电脑-属性-高级-环境变量增加系统变量:java_home:D:\Program Files\Java\jdk1.7.0_01(java安装好后的路径),Path变量中添加 %java_home%/bin,增加系统变量:classpath:.;D:\Program Files\Android\android-sdk\platforms\android-8\android (第1点android文件夹路径,特别注意要加".;",否则还是会失败的)3. 在eclipse中build工程,当然最好无错误了。在cmd窗口下进入此工程的classes目录下运行:javah -jni 包名.类名 跟路径有关执行cd <projectname>/bin/classes执行javah -jni com.example.HelloWorld谢过。 为什么是platforms\android-8 而不是platforms\android-7 或者platforms\android-9?谢谢指教 如果建的类和android没有联系 单独的一个java类就没这个问题,怎么只要用android的类就不行,有解决的? 直接把代码入ANDROID系统源码环境下编译很简单。 javah -jni com.example.HelloWorld com.example 是的你package 倘若路径为: /home/user/com/example/HelloWorld.class 那么在/home/user执行javah 正解 D:\workspace\DiskNumber\src\com\tjn\test 先要cd D:\workspace\DiskNumber\src\com\tjn\test 然后运行javac TestDll.java 生成class文件后,需要生成头文件,输入set classpath=D:\workspace\DiskNumber\src ,到项目的src根目录下,然后运行javah -jni com.tjn.test.TestDll 21楼说的设置set classpath=D:\workspace\DiskNumber\src把类路径设置即可,非常有用,谢谢了。 我也遇到了类似的问题,还是提示错误: 找不到类android.graphics.Bitmap。是什么原因呢? android中如何动态的添加/删除布局及修改布局属性? android平台可以实现蓝牙多对多的聊天吗 模拟器上怎么把视频文件拷贝到SD Card android录像 跪求android群发短信代码 android平台下的手机重力感应分析 联系人去重 关于安卓平台开发的一个问题 两个ViewPager,里面的一个不起作用,怎么办? android socket连接请教 android软键盘弹出后,编辑文字时,软键盘上面的输入框会跳动??? 关于 pc程序 通过ADB 控制 android 操作系统的一些疑问
http://mindtherobot.com/blog/452/android-beginners-ndk-setup-step-by-step/
专门造个jni的class试试
com.example 是的你package倘若路径为: /home/user/com/example/HelloWorld.class那么在/home/user执行javah
d:\BACKUP\workspace\helloworld\bin\com\simon>javac HelloworldActivity.java
d:\BACKUP\workspace\helloworld\bin\com\simon>javah -jni HelloworldActivity
就是一个简单的空Android工程啊:
package com.simon;import android.app.Activity;
import android.os.Bundle;
import android.util.Log;public class HelloworldActivity extends Activity {
private static final String TAG = "HelloWorld";
static {
System.loadLibrary("helloworld");
} private native String printJNI(); /** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Log.d(TAG, "Activity call JNI: " + printJNI());
}
}
加到哪个classpath?系统变量还是eclipse的java application里?都加了,还是不行
(1)我的电脑-属性-高级-环境变量
增加系统变量:java_home:D:\Program Files\Java\jdk1.7.0_01(java安装好后的路径),
Path变量中添加 %java_home%/bin,
增加系统变量:classpath:.;D:\Program Files\Android\android-sdk\platforms\android-8\android (第1点android文件夹路径,特别注意要加".;",否则还是会失败的)3. 在eclipse中build工程,当然最好无错误了。在cmd窗口下进入此工程的classes目录下运行:javah -jni 包名.类名
com.example 是的你package
倘若路径为: /home/user/com/example/HelloWorld.class
那么在/home/user执行javah 正解
cd D:\workspace\DiskNumber\src\com\tjn\test 然后运行javac TestDll.java 生成class文件后,
需要生成头文件,输入
set classpath=D:\workspace\DiskNumber\src ,到项目的src根目录下,然后运行
javah -jni com.tjn.test.TestDll