2013-07-28 51 views
48

Vì vậy, tôi đã thêm gson-2.2.4.jar vào thư mục libs (tôi đang sử dụng android studio). Dự án của tôi không thể tìm thấy các công cụ gson vì vậy tôi đã thêm nó như là một phụ thuộc thư viện cho mô-đun của tôi trong "Cấu trúc dự án". Khi tôi cố gắng chạy dự án, việc xây dựng không thành công với các lỗi sau:Android Gradle không thể tìm thấy lớp biểu tượng Gson

Error:(12, 23) Gradle: package com.google.gson does not exist 
Error:(37, 3) Gradle: cannot find symbol class Gson 
Error:(37, 19) Gradle: cannot find symbol class Gson 

Tại sao tôi không thể làm việc này? Tôi đọc ở nơi khác mà gradle là vụ phải xử lý tất cả mọi thứ tự động nếu nó được đặt trong thư mục lib.

+0

Tôi không quen với cách Android Studio hoạt động, nhưng tệp 'build.gradle' của bạn trông như thế nào? – superEb

Trả lời

39

Thêm tính năng phụ thuộc vào cài đặt Cấu trúc dự án là không đủ. Cài đặt đó chỉ dành cho IDE. Để thực sự xây dựng, Gradle cũng cần phải nhận thức được nó. Bạn phải thêm tệp .jar vào tệp build.gradle của bạn như vậy ...

dependencies { 
    compile files('libs/gson-2.2.4.jar') 
} 
+0

tôi thấy, cảm ơn rất nhiều! đã hoạt động. –

+0

Đó có phải là build.gradle của mô-đun hoặc của dự án không? – sisko

+19

NB, phiên bản hiện tại của gson là 2.3, vì vậy hãy sử dụng: 'dependencies {compile 'com.google.code.gson: gson: 2.3}' – nyxee

93

Tôi gặp phải vấn đề tương tự. Tôi chỉ cần thêm một dòng như được hiển thị bên dưới trong các phụ thuộc build.gradle của tôi (không thêm bất kỳ dấu hiệu nào trong cấu trúc dự án) và nó hoạt động cho tôi.

dependencies { 
    compile 'com.google.code.gson:gson:2.2.+' 
    compile 'com.android.support:support-v4:13.0.+' 
    compile 'com.android.support:appcompat-v7:18.0.+' 
} 

Cùng với ở trên, tôi tìm thấy thêm một số thứ cần thiết để hoạt động.

  1. Đảm bảo bạn có android:targetSdkVersion="18" trong tệp AndroidManifest.xml.

    <uses-sdk 
        android:minSdkVersion="10" 
        android:targetSdkVersion="18" /> 
    
  2. Đảm bảo bạn có targetSdkVersion 18 trong tệp build.gradle.

    defaultConfig { 
        minSdkVersion 10 
        targetSdkVersion 18 
    } 
    
  3. Đảm bảo bạn đã kết nối với internet; để các lọ sẽ được tải xuống từ kho lưu trữ maven trực tuyến trung tâm.

+2

#Shai Surve - Điều này vẫn đang làm việc cho bạn? Tôi phải bao gồm gson trong libs và tham chiếu nó với "biên dịch tập tin". – AndroidGuy

+0

Có nó hoạt động cho tôi. Nếu nó không hoạt động khi bạn không kết nối với internet. Sau đó, hãy thử tương tự khi được kết nối với internet. Vì nó lấy jar từ kho lưu trữ maven trung tâm mà quá trình xây dựng sẽ tải xuống từ kho lưu trữ maven trung tâm trực tuyến. – Sahil

+0

tuyệt vời! tôi không biết có một tạo phẩm cho gson trên mã google. làm thế nào để bạn tìm hiểu những gì khác có sẵn để tham khảo như là một phụ thuộc trong gradle. các thư viện từ xa phải có tệp build.gradle phải không? – speedynomads

13

Tôi đã gặp phải sự cố tương tự.

Để giải quyết nó chắc chắn rằng bạn chỉ định maven trung tâm cho android Plugin

repositories { 
    mavenCentral() 
} 

Và nó nên được bổ sung hai lần nếu bạn đang định xây dựng kịch bản

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:0.5+' 
    } 
} 


repositories { 
    mavenCentral() 
} 


apply plugin: 'android' dependencies {  
    compile 'com.google.code.gson:gson:2.2.4' 
    compile 'com.android.support:support-v4:13.0.0' 
    compile project(':libraries:volley') 
} 
+0

đặt chỉ thị 'repositories' một lần nữa ở cấp cao nhất làm việc cho tôi –

1

Tạo một libs tên thư mục và thêm hoặc chỉnh sửa build.gradle (hoạt động cho bất kỳ thư mục jar nào trong thư mục)

dependencies { 
    compile fileTree(dir: 'libs', include: '*.jar') 
} 
19

Chỉ cần thêm một điểm,

Kể từ điểm Gradle 1.7, jcenter() là một siêu của mavenCentral() ... do đó không cần thêm và lưu trữ chỉ thị.

Lọ sẽ được tải xuống từ kho lưu trữ trực tuyến trung tâm jcenter. vì vậy chỉ cần thêm tuyên bố sau đây là làm việc.

dependencies { 
compile 'com.google.code.gson:gson:2.2.+' 
} 
+0

Đơn giản và tốt nhất. – peresisUser

6

Trong trường hợp của tôi, tôi chỉ cần thêm dòng này:

dependencies { 

    compile 'com.google.code.gson:gson:2.7' 
} 

trong hồ sơ ứng dụng build.gradle tôi.

Đến nay 2.7 là cuối cùng phiên bản hiện tại có sẵn theo: https://mvnrepository.com/artifact/com.google.code.gson/gson

Vui lòng kiểm tra kho lưu trữ này để chắc chắn rằng bạn đang sử dụng phiên bản có sẵn ngoái.

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