eclipse中的- The declared package "" does not match the expected package""

  这个问题是在使用aidl时遇见,导致adt自动生成的.java文件不能正常运行,在网上搜索了些相关资料,在此整理一下。。。

最先在包中定义aidl文件时,大致情况如下:

1 interface remote{
2     String get();
3     double judge();
4 }
View Code

这时自动生成的.java文件就会报RT的错。

  这是因为,包名必须在程序中通过package语句来指定(例如 package com.init),而不是单纯的靠目录结构来指定,是先有了包名之后,才需要相应的目录结构。这时实际上的类名为当前aidl文件所在包名。必须把包声明放在源文件最前面,并且每个源文件最多只能声明一个包(在Eclipse中,由于一般是先新建包,eclipse创建package的时候自动帮你创建了目录了,最好要声明包,养成良好的编码风格和习惯)。

1 package org.star.service;
2 interface remote{
3     String get();
4     double judge();
5 }
View Code

一定要注意此处路径问题。另外,package的名字和结构必须和相关的目录名一致,包括大小写也要一致。Eclipse会在对应service\bin目录下生成org\star\目录,并且在org\star\目录下生成org\star\目录,但是实际上此class的名称为org.star.service.class。当然,在Eclipse中可以直接运行,但是在dos命令下,一定要注意实质上的编译和运行实际路径和类名等问题。

posted @ 2013-07-18 12:23  星微尘  阅读(3134)  评论(0编辑  收藏  举报