在項目中須要引用settings模塊里面的某個活動。在eclipse中導入settins.jar包之后,使用例如以下方式啟動:
Intent intent = new Intent(); intent.setAction("android.settings.INPUT_METHOD_SETTINGS"); intent.addCategory("android.intent.category.VOICE_LAUNCH"); intent.setClass(this, DateTimeSettingsSetupWizard.class); startActivity(intent);
編譯并不會報錯,可是在執行的時候就提示:ClassNotFoundException錯誤。在網上找加入三方庫報錯的解決方法都不行。后來換了一種是實現方式,且不須要導入settings.jar這個庫了。
Intent intent = new Intent(); intent.setAction("android.settings.INPUT_METHOD_SETTINGS"); ComponentName c = new ComponentName("com.android.settings", "com.android.settings.LanguageSettings"); intent.setComponent(c); intent.addCategory("android.intent.category.VOICE_LAUNCH"); startActivity(intent);
對,就是設定ComponentName的方式啟動。不須要導入包,且執行沒有錯誤。
并不清楚為什么導入包,會出現錯誤。有可能這個包導入軟件之后,實際上的載入,初始化都是在本應用的空間內進行。而你想要引用的類是在系統的包里面,并不在一個空間內,導致找不到這個類。
有更好解釋或者有什么線索的朋友,希望在評論中加入。拜謝!
參考評論中的內容,會持續更新本文。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
