看板 AndroidDev 關於我們 聯絡資訊
弄了一天,上來求救一下.. 我這邊包了一個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就已被連接了 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.220.69.181 ※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1504604018.A.5E4.html
ssccg: Activity只能由系統建立,必須加到manifest用startActivity 09/05 17:45
gn00618777: 您意思是說我的RwmManager必須加在別的project的 09/05 17:47
gn00618777: AndroidManifest.xml? 09/05 17:47
ssccg: 你的情況這Manager根本不需要是Activity,給別人呼叫的API 09/05 17:47
ssccg: 數加上context,再用那個context去bindService就好 09/05 17:47
gn00618777: 這樣WearableService是不是就要給別人自己去寫了? 09/05 17:50
ssccg: 不用啊... 09/05 17:52
ssccg: public void create(Context context) { 09/05 17:54
ssccg: Intent adc = new Intent(context, ... 09/05 17:54
ssccg: context.bindService(...) 09/05 17:54
ssccg: } // 大概像這樣 09/05 17:54
ssccg: 呼叫的人再把他的Context(例如Activity)傳進來就好 09/05 17:56
gn00618777: 照您的方法,我的失敗原因是我的 RwmManager 根本沒啟 09/05 18:12
gn00618777: 動,而wearableService也沒在啟動在系統內嗎? 09/05 18:13
ssccg: 應該說你的Manager(Activity)不是由系統啟動的,缺少必要的 09/05 18:22
ssccg: 系統資源,沒辦法做bindService這些Context的功能 09/05 18:22
ssccg: Activity自己new出來是不能用的 09/05 18:23
gn00618777: 可我特地把 bindService 先註解掉,只留 Intent宣告 09/05 21:33
gn00618777: Intent adb = new Intent(this, xxxxService) 他就掛 09/05 21:34
gn00618777: 了。照了您的方法可以運作,感謝。以前沒有提供sdk的 09/05 21:35
gn00618777: 經驗,都只是call別人的,現在要想得更周全~"~s大謝謝 09/05 21:37
y3k: 其實也不是周不周全的問題 而是你還沒搞懂為什麼Activity不是 09/06 02:15
y3k: 從Activity()進去而是onCreate()才算開始 09/06 02:15
y3k: 當你透過Intent呼叫Activity的時候 其實系統除了把它new起來 09/06 02:16
y3k: 以外還做了很多事情 他才能正常呼叫裡面的bindService() 09/06 02:17
y3k: 而那些正是你原本的寫法缺的 也不是由你做的 09/06 02:17
y3k: 如果時間充足的話 建議你去弄懂這塊 因為這是基礎喔@@ 09/06 02:20
gn00618777: 感謝指導..那我先不bind先intent(this,service)就找 09/07 21:34
gn00618777: 不到service 09/07 21:34
gn00618777: 請問這原因?@@感激 09/07 21:34
y3k: !?你的RwmManager跟WearableService是在同一個apk裡面嗎 09/08 00:48
y3k: 如果是 檢查一下aar是否真的有包進那個class 09/08 00:49
gn00618777: 是的 我解開 將class.jar 直接用add to library看 他 09/08 22:33
gn00618777: 有出現wearableservice...所以一直很困惑 雖然說現在 09/08 22:33
gn00618777: 用別的方法了 但這個無法解釋 09/08 22:33