在Windows下的javah编译class文件找不到android.app.Activity的类文件

linxiaobo2125 2011-10-09 11:57:33
package com.test.layout;

import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import android.view.View;
import android.view.View.OnClickListener;
import android.text.Editable;



public class TestlayoutActivity extends Activity {

Button okButton;
Button cancelButton;
OnClickListener btnClick;
EditText inputtext;


public native String getresult(Editable input);//声明native方法,用于提取用户输入并传到C中
//并从C中接受返回值,并使用Toast输出


/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

okButton=(Button)findViewById(R.id.OK);
cancelButton=(Button)findViewById(R.id.Cancel);
inputtext=(EditText)findViewById(R.id.Input);

btnClick = new OnClickListener() {
@Override
public void onClick(View v){
if (v == okButton) {
Editable input = inputtext.getText();
String output = getresult(input);

Toast.makeText(TestlayoutActivity.this,output, Toast.LENGTH_SHORT).show();


} else if (v == cancelButton) {
inputtext.getText().clear();

}

}

};

okButton.setOnClickListener(btnClick);
cancelButton.setOnClickListener(btnClick);

}


static {
System.loadLibrary("inputtest");

}




}


因为我是用eclipse写的代码,用sdk模拟器都可以正常跑起来,功能也都可以实现。
关于生成的class文件是在bin目录下,然后再按照包名类名找下去,没问题,里面的内容如下



然后我在bin目录下执行javah com.test.layout.TestlayoutActivity,然后出现错误如下

然后如果我单独javac TestlayoutActivity.java会报错找不到很多东西,看样子不能这么弄

...全文
4836 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
秋微凉 2014-05-28
  • 打赏
  • 举报
回复
11楼解决了我的心头大痛啊
daveztong 2014-05-07
  • 打赏
  • 举报
回复
F11就了我啊!郁闷了大半天的!
aaadqiang 2013-09-13
  • 打赏
  • 举报
回复
11楼是正解啊!解决了我的问题,谢谢啊!
雅典娜MAX 2013-08-15
  • 打赏
  • 举报
回复
19楼方法成功...谢谢
阿布1991 2013-08-03
  • 打赏
  • 举报
回复
16楼,非常感谢
xn4545945 2013-06-05
  • 打赏
  • 举报
回复
在src目录下用javah命令, 就不会出现问题。这个绝对是可以的,楼主试试吧。
lidongwei18 2013-06-04
  • 打赏
  • 举报
回复
javah路径不对!
Mr_print 2013-04-25
  • 打赏
  • 举报
回复
谢谢11楼。。。
toom_dp2px 2013-02-27
  • 打赏
  • 举报
回复
http://blog.csdn.net/hejinjing_tom_com/article/details/8125648
yllmx 2013-01-07
  • 打赏
  • 举报
回复
11楼第二种方法ok
sada09 2013-01-06
  • 打赏
  • 举报
回复
为嘛还不行 按照11L
l07063005 2012-12-26
  • 打赏
  • 举报
回复
11楼的可以,谢了
竹木一540 2012-11-16
  • 打赏
  • 举报
回复
我刚刚也遇到了,我以为以这个问题可能是jdk7才有的,你可以把android.jar加到你的classpath里面去,如11楼所言,我是在ubuntu上编译的,所以加了一句 export CLASSPATH=.:/home/wangzhiping/app/android-sdk-linux/platforms/android-4/android.jar:$CLASSPATH 命令,即可,不知道window支持否?你查以试试在你的电脑中添加一个环境变量CLASSPATH,值设为android.jar的地址
GeekerParadise 2012-11-01
  • 打赏
  • 举报
回复
无法访问android.app.Activity是说明没有引入android.jar包
可以看看java -h里面的具体说明。
其中有一个-bootclasspath参数 让他指向android.jar包
以下举个例子:javah -classpath bin/classes -bootclasspath D:\Environment\android-sdk-windows\android-sdk-windows\platforms\android-16\android.jar -d jni com.jm.promedia.SecondActivity

或者也可以到src目录下 javah -d ../jni com.jm.promedia.SecondActivity

其中-d是建立一个目录,把生成文件放进去
aSysBang 2012-04-09
  • 打赏
  • 举报
回复
eclipse都需要ADT才能编译android项目
要是用命令编译的话,估计也不是一个javac能搞定的
jokey514 2012-04-09
  • 打赏
  • 举报
回复
我也是遇到这样的问题,有人解决了吗,教下大家!
kristy1452 2012-02-20
  • 打赏
  • 举报
回复
我也遇到了这个问题
gaogaf 2011-12-12
  • 打赏
  • 举报
回复
确认输出目录是 bin 而不是 bin/classes 。
否则需要修改命令为 javah -classpath bin/classes ...
linxiaobo2125 2011-10-10
  • 打赏
  • 举报
回复
错误:无法访问android.app.Activity
找不到android.app.Activity的类文件

不好意思 第一次发帖,不知道不能修改 也不会传图 只能在二楼补充一下了
linxiaobo2125 2011-10-10
  • 打赏
  • 举报
回复
不是用javac运行,因为eclipse在编译的时候自动生成class文件嘛,我看网上有些人说如果class不能成功编译成h 可以手动生成个class文件试试,我的意思就是手动没办法生成class 文件
加载更多回复(3)

80,427

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧