慕仰9472399
https://github.com/ruyue-zhang/AIDLDemo_Person.git我的跑起来了,你可以参考一下
qq_期待_fjAHQT
看一下包名和接口的路径名是否一样
mrli1990
工具的问题吧,
慕姐1217228
另外服务端要注册服务,并且允许远程,不然会发生安全性异常
<service android:name=".MService"
android:process=":remote"
android:exported="true"
/>
契2
首先服务端清单文件中配置Service
<!-- 使用 android:exported="true" 属性将当前 Service 暴露出去,
使其它进程的组件也能与绑定当前 Service -->
<service android:name=".IRemoteService" android:exported="true"/>
2.其次在服务端中启动这个Service,代码如下:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent intent = new Intent(this, IRemoteService.class);
startService(intent);
}
}
慕九州9886183
都娶不到服务端的那个service类.
慕工程4942694
服务有没有在清单文件里进行注册?
qq_子襟_0
如果你是看着这个视频敲的代码,那么请在IRemoteService类里的onBind方法,返回iBinder,不要return null.
LillteZheng
金鱼记忆
_秋风斌然_
1、尽量贴出没有实现功能的错误提示,错误提示描述请尽量清晰。
2、android系统版本提高了,绑定service要使用显式intent。
ywl5320
在BindService之前先调用startService就可以绑定成功了,可以试一下
HighDreamGao
ABCzhouxueqin
幕布斯0564268
慕勒9345121
是因为你的服务端没有启动,客户端端链接不上服务端,一楼那样一设置,然后保证启动服务端再启动客户端,就正常了。以后再启动,启动客户端就会自动启动服务端,但是不能卸载服务端,否则还会空指针。
qq_青春之梦_0
Android Studio
酿造
可以使用messenger来传递试试
西瓜牛奶
课程中的Demo已经是两个不同的Module,拥有各自不同的进程,因此无需为service指定process。如果是想在一个应用里实现IPC,才需要为service指定不同的process。
qq_little权权
//调用远程的服务
int res= iMyAidl.add(num2, num1);
mEtRes.setText(res);
出错在 mEtRes.setText(res);这里。mEtRes.setText(res);中的res是一个int 类型,那么res值对应是values文件夹中的strings.xml里的值。
应该改为mEtRes.setText(res+“”);这样就行了
qq_hai_0
注册服务,<service android:name=".IRemoteService"
android:process=":remote"
android:exported="true"/>
njh_hjn
无法绑定到远程服务?
1. 需要确认两端的AIDL下的包名和接口文件保持一致(包括名称)
2. 确认远程服务端APP已启动.
3. 确认绑定时包名,类名正确.(包名用的客户端的还是服务端的?)
安大传说
客户端也需要aidl文件,
果然是酱
你的服务启动了吗?
Links丶
靠!我也掉进了这个坑,经谷狗得:
android:process=":remote",代表在应用程序里,当需要该service时,会自动创建新的进程。而如果是android:process="remote",没有“:”分号的,则创建全局进程,不同的应用程序共享该进程。
android:exported="true"是确定该服务可以被其他程序访问
夕月11111111
你服务端的IRemoteService没有在AndroidManifest.xml中注册,加上下面的代码,重新运行服务端,然后再运行客户端就可以了:
<service android:name=".IRemoteService" android:enabled="true" android:exported="true" />