我創建了Android Studio中的作品完美的應用。如果我生成一個AAR和APK並使用這些文件,它們再次正常工作。我可以在幾個設備上安裝APK,它的工作完美無瑕。現在,當我安裝APK的AOSP建立我不斷收到java.lang.UnsatisfiedLinkError中的內部:指向的代碼的第一行是在呼喚我的本地方法。我用這個鏈接作爲參考Add .apk files in aosp。當我運行模擬器並單擊我的應用程序時,它崩潰併產生UnsatisfiedLinkError。如果我使用我的AAR文件生成APK,也會發生同樣的情況。再次澄清一下,這隻發生在AOSP中,當在Android Studio中使用AAR進行其他構建時,不會發生這種情況,並且無論安裝在哪個設備上,該APK總能正常工作。任何有關爲什麼發生這種情況的建議將會很棒!AOSP本地代碼鏈接錯誤
回答
AOSP試圖找到我的APK使用無論從系統/ lib目錄或供應商/ lib目錄文件夾,並因爲它是不是有它導致UnsatisfiedLinkError中的.so。因此,通過將.so目標文件目錄添加到這些位置,APK在啓動之後可以在模擬器內正常啓動。這也可以通過修改Android.mk並將這些行添加到文件來完成。
包括$(CLEAR_VARS)
LOCAL_MODULE:= MYFILE
LOCAL_SRC_FILES:= LIB/myfile.so#或任何你。所以位於
LOCAL_MODULE_TAGS:=可選
LOCAL_MODULE_SUFFIX:=。所以
LOCAL_MODULE_CLASS: = SHARED_LIBRARIES
include $(BUILD_PREBUILT)
感謝您的解答,它是在主Android,mk或jni目錄下添加的嗎? – sandeepmaaram
@sandeepmaaram所有這些都會被添加到你的Android.mk文件裏面,它會根據你的LOCAL_SRC_FILES生成一個.so文件。您也可以手動將生成的.so文件添加到您正在構建的AOSP文件夾內的那些目錄下。 – AConsiglio
非常感謝,從上面的代碼「LOCAL_SRC_FILES:= lib/myfile.so#或上面查詢.so所在位置」的意思.so文件路徑aosp右例如。出/目標/系統/ LIB/myfile.so。那麼在jni文件夾下的Android.mk代碼如何? 在此先感謝。 – sandeepmaaram
which points to the very first line of code that's calling my native method.
聽起來你正在構建應用程序與本機庫和包括創建.apk文件只捆綁一些體系結構類型到它。如果你有本地庫,確保包括所有的體系結構類型(通常是86和ARMv7做這項工作,但總是先諮詢你的兼容性清單),確保如果你這樣做ABI splitting您正在使用的權APK。
請consule以下指南,以確保您有the NDK integration set up correctly。
OP正在討論將一個'apk'包含到AOSP中,這與在運行的操作系統上部署應用程序不同。 – Onik
- 1. 導航AOSP本地代碼
- 2. 代碼::鏈接錯誤
- 3. 鏈接查詢錯誤代碼1052
- 4. F2588鏈接器錯誤代碼:1($ 00000001)
- 5. C++錯誤代碼將不會鏈接
- 6. ocamlopt鏈接錯誤代碼2
- 7. Excel錯誤跟蹤+代碼行鏈接?
- 8. 模板代碼鏈接錯誤
- 9. 本地方法鏈接錯誤
- 10. 將鏈接鏈接至本JavaScript代碼
- 11. 在本地gerrit上設置AOSP源碼
- 12. AOSP生成錯誤
- 13. AOSP鏡像錯誤
- 14. AOSP構建錯誤
- 15. aosp_x86-eng建立在AOSP 4.3源代碼失敗,錯誤__strlen_chk
- 16. C代碼宏編譯錯誤(AOSP:外部/ clearsilver/util的/ neo_err.h)
- 17. Java接口代碼錯誤?
- 18. 緩存接收查詢錯誤:錯誤代碼0? (用於Google地圖的ArcGis服務器鏈接)
- 19. AS3本地連接錯誤
- 20. 本地連接錯誤php
- 21. AOSP生成錯誤使-jN
- 22. Android位圖本地代碼 - 鏈接問題
- 23. C++鏈接器錯誤(「鏈接器命令失敗,退出代碼1」)
- 24. 轉到代碼編譯鏈接器錯誤。我可以手動鏈接嗎?
- 25. 爲什麼我的鏈接列表代碼導致鏈接錯誤?
- 26. Ruby代碼鏈接
- 27. 創建AVD並將其鏈接到AOSP
- 28. 鏈接16位asm代碼時出錯
- 29. 獲取github鏈接代碼版本
- 30. 在本機代碼編譯時查找AOSP中的Android版本?
您不能直接在手機上安裝.aar存檔,因爲它們用於庫項目。我想你只是指.apk檔案。 – anthonymonori
對不起應該說我也嘗試過使用AOSP生成APK的Android.mk裏面的aar。以下位置包含從AOSP/android/out/target/product/generic/data/app/MyApplicationName生成的APK。當我拿起這個APK並將其傳輸到我的手機時,它會在啓動時崩潰,並且出現同樣的不滿意的錯誤。 – AConsiglio
我還增加了APK到/封裝/應用/ MyApplicationName – AConsiglio