2013-08-07 50 views
-1

我現在遇到了麻煩,在基於臺灣mtk android手機平臺的system.img中添加了一個預製的apk,當我將這個apk推到設備上後,的APK可以安裝succecessfully,但如果我加入這個APK進入alps/out/target/product/$prj/system/appvendor/mediatek/$prj/artifacts/out/target/product/$prj/system/app,併產生一個system.img的APK無法正常安裝後,logcat的說:ClassNotFoundException當添加一個預先安裝的apk到system.img中android

a.lang.RuntimeException: Unable to instantiate activity 
ComponentInfo{com.sec.android.widgetapp.ap.hero.accuweather.widget/com.sec.android.widgetapp.ap.hero.accuweather.widget.WeatherClock}: 
java.lang.ClassNotFoundException: com.sec.android.widgetapp.ap.hero.accuweather.widget.WeatherClock. 

有誰能夠告訴我問題是什麼?

+0

當我試圖構建我的應用程序作爲圖像的一部分時,出現以下錯誤: E/dalvikvm(1334):無法打開dex緩存'/ data/dalvik-cache/system @ a。 .. @ [email protected]':沒有這樣的文件或目錄I/dalvikvm(1334):無法打開或爲/ system/app/test.apk創建緩存(/ data/dalvik-cache/system @ a ... @ [email protected])E/Util(1334):Class Not Found:java.lang.ClassNotFoundException: 但是當我手動將apk安裝到設備(進入system/app)時,它可以工作精細。 我想知道爲什麼它是這樣的兩種方式apk只是在系統/應用程序存在。 – fla888

回答

1

當程序包管理器安裝屬於系統分區的應用程序與安裝數據分區上的應用程序不同時。它看起來像你的應用程序使用來自其他地方的庫。通常,當您安裝數據時,會在應用程序數據目錄中創建一個lib目錄,並將其鏈接到/ data/app-lib /。當應用程序安裝在系統上時,預計它們依賴的任何庫都已經是system/lib或vendor/lib中的system.img的一部分。爲了創建已包含在設備共享位置中的庫的多個副本,不會複製這些庫。您可能希望複製apk並解壓縮,並查找它包含的任何庫,並確保將這些庫放置在system/lib或system/framework中。你也可以找到這些庫,並在你閃過的設備上創建自己的符號鏈接,以查看是否能解決你的問題。

希望有助於一些。

+0

我想知道爲什麼我無法構建apk作爲system.img或userdata.img的一部分,而手動推送它將正常安裝,我可以確保沒有任何本地庫包含在apk中,這個apk已經被放到/ data/app和/ system/app中,但沒有運氣。最後,我發現如果構建usr構建的味道,這個apk可以構建爲system.img的一部分,爲什麼eng構建具有如此的風格問題? – fla888