我正在制作库项目中的AIDL服务,并在我的应用程序中使用它。我的应用程序中有一个类别为Vehicle的类,该类可以打包,以便可以在界面中使用它。(我想从图书馆的服务中获取我的应用程序中的车辆清单)
在应用程序和库中都需要Vehicle.java吗?
我是否都需要Vehicle.aidl?
我在应用程序和库中都拥有Vehicle.java和Vehicle.aidl,我的应用程序开始遇到一个问题,当我从接口eclipse调用方法时,我希望我将其定义为库类的Vehicle而不是应用程序(尽管它们是相同的,并且都是可包裹的)。
public List<Vehicle> getVehicles(){...code... }
为了解决这个问题,我尝试在IRemoteInterface.aidl中使它成为应用程序的车辆类,而不是库的车辆类(在下面列出的变体中,我收到一个错误,它找不到导入。在其他变体中例如将其设为List而没有导入,则表示返回类型未知)。
package LIBRARY;
import LIBRARY.RelPoint;
import LIBRARY.IRemoteServiceCallback;
import LIBRARY.FleetStatus;
import APPLICATION.Vehicle;
interface IRemoteInterface {
int getPid();
void registerCallback(IRemoteServiceCallback callback);
void unregisterCallback(IRemoteServiceCallback callback);
List<Vehicle> getVehicles();
}
这是应用程序中我的包裹式车辆类 :
package APPLICATION;
import java.util.Date;
import android.os.Parcel;
import android.os.Parcelable;
public class Vehicle implements Parcelable {
public static final String TAG = "Vehicle";
long vehicleID;
long trackID;
String vehicleName;
public static final Parcelable.Creator<Vehicle> CREATOR = new Parcelable.Creator<Vehicle>() {
public Vehicle createFromParcel(Parcel src) {
return new Vehicle(src);
}
public Vehicle[] newArray(int size) {
return new Vehicle[size];
}
};
public Vehicle(Parcel src) {
readFromParcel(src);
}
public void writeToParcel(Parcel dest, int flags) {
dest.writeLong(vehicleID);
dest.writeLong(trackID);
dest.writeString(vehicleName);
}
public void readFromParcel(Parcel src) {
vehicleID = src.readLong();
trackID = src.readLong();
vehicleName = src.readString();
}
public int describeContents() {
// nothing special
return 0;
}
public Vehicle() {
}
//getter and setter methods below that I removed
}
我可以肯定地说,您需要Parcelable
在两端将这些类放在同一个包中(通过APPLICATION
在库端使用一个包,最终得到的结果,反之亦然)。该软件包还必须是在相应aidl
文件中声明的软件包。
我建议使用一个子包com.example.interop
来使它更整洁(即,将共享库放在自己的包中)。双方都应该在该程序包中包含一个Java文件+一个aidl
声明它的文件。
我在aidl中定义了一个接口,但我无法扩展它或以任何方式找到它。ide告诉我:无法解析符号“KeyEventListener”,你知道如何解决这个问题吗? 其他信息: KeyEventListener是在KeyEventListener中定义的接口的名称。aidl 我知道android-Studio是一些类似于pre-alfa的东西,但非常喜欢它,如果有人能阻止我,我会非常高兴!
我有一个小的webservice程序,在其中我需要从外部JAR导入JSONObject。在尝试部署webservice时,Glassfish找不到导入的类(从外部jar),但在IDE中看起来很好。 [2017-11-17T16:22:49.429+0100][glassfish 4.1][警告][][javax.enterprise.web][tid:_threadid=30_threadname
没有图像很难描述: 编辑:(我不能发布一个图像,直到我有更多的声誉)。 jar存在于外部库中,包包含类('org.roblectric.AndroidManifest')。导入语句在“robolectric”之前是灰色的,但在“AndroidManifest”上是红色的。当我点击包(robolectric)时,它会将我带到正确的包,其中显然包含该类。 这是应用程序中唯一的机器人库,因此它不是在使用
我在Eclipse中创建了一个新项目,我想在其中使用JTS库。我在创建项目期间导入了库,但在包资源管理器中找不到类。 由于我对Java和Eclipse没有经验,我将从一开始就解释我做了什么。 > 我从GitHub下载JTS库:https://github.com/locationtech/jts 我在命令行中使用创建jts-core.jar。我把它放在工作区/库中 在Eclipse中,我在work
我必须使用谷歌云语音API在Xamarin.iOS应用程序中实现语音转换文本功能。 首先,我尝试使用google.cloud.speech.v1 Nuget包,但是gRPC库似乎不能与Xamarin一起工作(https://github.com/gRPC/gRPC/issues/1620,https://forums.Xamarin.com/discussion/94534/how-to-use-
新手入门 - 界面导航 百度统计的界面由导航菜单、报告导航、数据筛选区域等8个模块组成。 1 . 导航菜单 导航菜单包括主页、报告、管理、应用中心四项,显示在百度统计每个屏幕的顶部,便于您快速访问。 主页:方便你快速查看账户下的站点数据信息,洞察全局。 报告:为您提供三十多种报告数据,轻松分析系统的访问情况。 管理:您可以在这里管理您的账户、站点、代码、邮件订阅、权限等各种设置信息。 应用中心:百