本帖最后由 lcb 于 2011-09-18 18:15:56 编辑

解决方案 »

  1.   

    为什么不用NDK?
    http://mindtherobot.com/blog/452/android-beginners-ndk-setup-step-by-step/
      

  2.   

    你是个什么JNI啊。 怎么还找android.app.Activity去了。。
    专门造个jni的class试试
      

  3.   

    javah -d <outputdir> -classpath <classpath> <fully_qualified_class>
      

  4.   

    javah -jni com.example.HelloWorld
     
    com.example 是的你package倘若路径为:    /home/user/com/example/HelloWorld.class那么在/home/user执行javah
      

  5.   

                这个问题 应该是你路径的问题 说明你路径一定写错啦    你直接把你编译好的那个.class 放在跟工程的同一个目录     就是跟主目录同级  就应该可以啦    
      

  6.   

    建议用下面两条命令:
    d:\BACKUP\workspace\helloworld\bin\com\simon>javac HelloworldActivity.java
    d:\BACKUP\workspace\helloworld\bin\com\simon>javah -jni HelloworldActivity
     
      

  7.   

    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());
        }
    }
      

  8.   

    主要是没有和android里面的class连接,我测试了下,我用的是2.2版本的,然后就进去sdk里面的 xxx-8目录下,把android.jar复制,改名为android.rar,然后解压为一个名叫android的文件夹,删掉android.rar,进去android文件夹,把目录复制,到classpath里面加上去,ok了
      

  9.   


    加到哪个classpath?系统变量还是eclipse的java application里?都加了,还是不行
      

  10.   

    网上说的很分散,经过一天的查询和无数的失败后发现原来是这样。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 包名.类名
      

  11.   

    跟路径有关执行cd <projectname>/bin/classes执行javah -jni com.example.HelloWorld谢过。
      

  12.   

    为什么是platforms\android-8   而不是platforms\android-7  或者platforms\android-9?谢谢指教
      

  13.   

    如果建的类和android没有联系 单独的一个java类就没这个问题,怎么只要用android的类就不行,有解决的?
      

  14.   

    直接把代码入ANDROID系统源码环境下编译很简单。
      

  15.   

    javah -jni com.example.HelloWorld
      
     com.example 是的你package
     
    倘若路径为:    /home/user/com/example/HelloWorld.class
     
    那么在/home/user执行javah 正解
      

  16.   

    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
      

  17.   

    21楼说的设置set classpath=D:\workspace\DiskNumber\src把类路径设置即可,非常有用,谢谢了。
      

  18.   

    我也遇到了类似的问题,还是提示错误: 找不到类android.graphics.Bitmap。是什么原因呢?