[问题] 如何包一个有做连接service的aar?

楼主: gn00618777 (非常念旧)   2017-09-05 17:33:35
弄了一天,上来求救一下..
我这边包了一个AAR,AAR里面有一个class 名叫 RwmManager
class CwmManager exteds Activity
{
public void Create(){
Intent adc = new Intent(this, rwm.wearablesdk.wearableService.class)
/*
bindService(....)
*/
}
}
AndroidManifest.xml:
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true">
<service
android:name="rwm.wearablesdk.WearableService"
android:enabled="true" />
</application>
包成AAR后,给另一个 project import
在别的 project 的 activity 这样宣告
RwmManager rwmManager = new RwmManager();
rwmManager.Create();
APK会变成闪退,log出现
E AndroidRuntime: at rwm.wearablesdk.RwmManager.Create(Unknown Source)
他好像找不到 rwm.wearablesdk.WearableService...
我在另一个 project 的AndroidManifest.xml加上此rwm.wearablesdk.WearableService
一样结果
我错在哪呢? 感谢
如果不会在闪退了,我想要在此RwmManager class 内 bindService 这逻辑不知道
有没有问题,因为我看范例都是在Activity 去 bindServiec,而我是想把 RwmManager
extends Activity 包起来给别人呼叫,当一呼叫 WearableService就已被连接了
作者: ssccg (23)   2017-09-05 17:45:00
Activity只能由系统建立,必须加到manifest用startActivity
楼主: gn00618777 (非常念旧)   2017-09-05 17:47:00
您意思是说我的RwmManager必须加在别的project的AndroidManifest.xml?
作者: ssccg (23)   2017-09-05 17:47:00
你的情况这Manager根本不需要是Activity,给别人呼叫的API数加上context,再用那个context去bindService就好
楼主: gn00618777 (非常念旧)   2017-09-05 17:50:00
这样WearableService是不是就要给别人自己去写了?
作者: ssccg (23)   2017-09-05 17:52:00
不用啊...public void create(Context context) {Intent adc = new Intent(context, ...context.bindService(...)} // 大概像这样呼叫的人再把他的Context(例如Activity)传进来就好
楼主: gn00618777 (非常念旧)   2017-09-05 18:12:00
照您的方法,我的失败原因是我的 RwmManager 根本没启动,而wearableService也没在启动在系统内吗?
作者: ssccg (23)   2017-09-05 18:22:00
应该说你的Manager(Activity)不是由系统启动的,缺少必要的系统资源,没办法做bindService这些Context的功能Activity自己new出来是不能用的
楼主: gn00618777 (非常念旧)   2017-09-05 21:33:00
可我特地把 bindService 先注解掉,只留 Intent宣告Intent adb = new Intent(this, xxxxService) 他就挂了。照了您的方法可以运作,感谢。以前没有提供sdk的经验,都只是call别人的,现在要想得更周全~"~s大谢谢
作者: y3k (激流を制するは静水)   2017-09-06 02:15:00
其实也不是周不周全的问题 而是你还没搞懂为什么Activity不是从Activity()进去而是onCreate()才算开始当你透过Intent呼叫Activity的时候 其实系统除了把它new起来以外还做了很多事情 他才能正常呼叫里面的bindService()而那些正是你原本的写法缺的 也不是由你做的如果时间充足的话 建议你去弄懂这块 因为这是基础喔@@
楼主: gn00618777 (非常念旧)   2017-09-07 21:34:00
感谢指导..那我先不bind先intent(this,service)就找不到service请问这原因?@@感激
作者: y3k (激流を制するは静水)   2017-09-08 00:48:00
!?你的RwmManager跟WearableService是在同一个apk里面吗如果是 检查一下aar是否真的有包进那个class
楼主: gn00618777 (非常念旧)   2017-09-08 22:33:00
是的 我解开 将class.jar 直接用add to library看 他有出现wearableservice...所以一直很困惑 虽然说现在用别的方法了 但这个无法解释

Links booklink

Contact Us: admin [ a t ] ucptt.com