2013-04-11 39 views
38

Tôi đã nhìn thấy một số câu hỏi về điều này, nhưng không có câu hỏi nào có câu trả lời thực cũng như chi tiết. Đây là trường hợp của tôi:INSTALL_FAILED_CPU_ABI_INCOMPATIBLE trên thiết bị sử dụng intellij

Tôi có một ứng dụng sử dụng API Google Maps v2 hoạt động tốt. Gần đây tôi phát hiện ra rằng tôi không thể cài đặt nó trên this không phải thiết bị dựa trên ARM.

Để móng tay xuống vấn đề tôi đang làm việc với các mẫu Google Maps cung cấp cùng với SDK (\ sdk \ extras \ google \ google_play_services \ samples)

mà mang lại cho tôi được thông báo lỗi cùng lúc cài đặt thời gian:

Failure [INSTALL_FAILED_CPU_ABI_INCOMPATIBLE]

tôi nhận được thông báo này chỉ trên một thiết bị thực sử dụng Intellij (12.1.1)

Nó hoạt động tốt bằng cả Eclipse trên thiết bị thực tế và sử dụng Intellij trên Emulator cấu hình w CPU thứ i: Intel Atom (x86)

Bất kỳ trợ giúp nào sẽ được đánh giá cao!

CẬP NHẬT

Đúng như dự đoán, điều tương tự sẽ xảy ra với Android Studio

+0

Có bất kỳ thư viện bản địa trong ' thư mục libs' được đóng gói cùng với ứng dụng của bạn và có thể không tương thích với kiến ​​trúc đích? – CrazyCoder

+0

@CrazyCoder Không. Bên cạnh đó tôi đang cố gắng để làm cho nó hoạt động chỉ bằng cách sử dụng mã mẫu từ Google mà tôi không tin là nền tảng cụ thể. – Androiderson

+0

@FuegoFro bạn có thể giúp tìm tính năng này trong Android Studio 1.2.2 không? – Wishmaster

Trả lời

104

Theo mặc định, IntelliJ giả định rằng các libs thư mục trong thư mục gốc của một mô-đun Android chứa các thư viện nguồn gốc, thậm chí nếu nó chỉ giữ lọ . Vì vậy, nó gói APK làm cho nó trông giống như đây là những thư viện bản địa. Tôi chỉ có một vấn đề tương tự mà ứng dụng của tôi không có mã nguồn gốc và sẽ làm việc trên trình mô phỏng mặc định, nhưng có cảnh báo ABI khi cài đặt trên trình giả lập Genymotion. Để khắc phục điều này, hãy cho IntelliJ (hoặc Android Studio) biết rằng thư viện của bạn không phải là mã gốc:

  1. Mở File -> Project Structure.
  2. Nhấp vào Modules ở phía bên trái của cửa sổ.
  3. Đối với mỗi mô-đun Android, hãy mở rộng trình đơn thả xuống và chọn phụ đề Android.
  4. Trong tab Structure ở bên phải, xóa nội dung của trường Native libs directory (bạn có thể để trống trường này).
  5. Khi bạn đã thực hiện việc này cho từng mô-đun Android trong dự án và áp dụng các thay đổi, bạn có thể cần phải xây dựng lại dự án của mình để thay đổi diễn ra bằng cách chọn Build -> Rebuild Project từ menu chung của IntelliJ.
+0

Tôi nghĩ rằng đây là một lỗi trong IntelliJ vì nó giả định bạn có thư viện bản địa trong dự án của bạn. Tôi đã không tìm thấy một vé mở về chủ đề này vì vậy tôi sẽ tạo một vé. – kierans

+3

Thưa bạn, câu trả lời của bạn xứng đáng hơn nhiều phiếu bầu, tại sao nó không được chấp nhận ?! Cảm ơn! –

+1

Đồng ý với @DaleCooper - Đây là câu trả lời. Công cụ tuyệt vời FuegoFro đã khắc phục sự cố của tôi một cách nhanh chóng. –

12

Mới nhất Genymotion sẽ không hỗ trợ nhị phân ARM. Nếu bạn có mã nguồn gốc được biên dịch cho ARM, bạn có thể sử dụng Genymotion-ARM-Translation. Chỉ cần kéo và thả tệp này vào thư mục gốc Genymotion và khởi động lại.

Tham chiếu. http://forum.xda-developers.com/showthread.php?t=2528952.

+0

Câu trả lời hay, cảm ơn – fish40

+0

bạn được chào đón – sreekumar

Các vấn đề liên quan