2013-06-27 38 views
13

Tôi đang sử dụng Công cụ dành cho nhà phát triển Android 22, Eclipse Indigo và Plugin Gradle hiện tại cho Eclipse.ADT Eclipse + Gradle: BuildConfig.java chưa hoàn thành

Bây giờ tôi muốn sử dụng hương vị khác nhau bằng cách định nghĩa trong file build.gradle:

 productFlavors{ 
    A { 
     packageName "com.test.A" 
     buildConfig "public final static String FLAVOR = \"A\";" 

    } 
    B { 
     packageName "com.test.B" 
     buildConfig "public final static String FLAVOR = \"B\";" 
    } 
} 

Theo như tôi biết tôi có thể truy cập vào các biến này bằng BuildConfig.FLAVOR, nhưng định nghĩa của FLAVOR bị thiếu trong tệp BuildConfig.java được tạo trong thư mục gen.

Nếu tôi tập hợp Dự án của mình qua Gradle, BuildConfig.java chính xác và đầy đủ được tạo trong thư mục build/source/buildConfig/[A | B]/[debug | release]/com/test/.

Nó hoạt động nếu tôi xây dựng các dự án trên gradle, nhưng tôi không thể làm việc với Eclipse, bởi vì nó hy vọng rằng các biến được định nghĩa trong BuildConfig.java trong gen thư mục

Tôi có thể buộc gradle hoặc adt để tạo BuildConfig.java đúng trong thư mục gen?

+0

Tôi hiện đang hỏi cùng một câu hỏi. Tôi cho rằng nó hiện không thể do thiếu sự hỗ trợ dụng cụ trong ADT. Bạn có thể sử dụng sự phản chiếu để nhận giá trị của FLAVOR bây giờ. – Moritz

Trả lời

2

Android Studio là cạnh chảy máu (chưa được thử nghiệm beta).

Như đã trả lời ở Issue 57668 bởi đội ngũ Android (nêu ra bởi @arcone)

thành viên Dự án # 2 x ... @ android.com

Plugin nhật thực là không tương thích với các plugin Android.

Bạn sẽ không thể nhập dự án Android gradle vào Eclipse bằng cách sử dụng hỗ trợ Gradle mặc định trong Eclipse.

Để làm cho nó làm việc trong Eclipse, chúng tôi sẽ phải thay đổi plugin Gradle cho Eclipse, giống như cách chúng ta đang thay đổi sự ủng hộ Gradle trong IntelliJ

Đó là đội ngũ Android đang làm việc trên Plugin gradle cho IntelliJ và plugin gradle cho Eclipse cũng cần được cập nhật.

Bạn có thể phát triển trong Eclipse với ADT và chạy Gradle xây dựng sử dụng Nodeclipse/Enide Gradle for Eclipse (marketplace)

Một số ảnh chụp màn hình cho Gradle for Eclipse:

some plans for Android with Gradle Development in Eclipse

1

Sử dụng Eclipse với plugin Gradle mới không được hỗ trợ, bạn nên sử dụng Android Studio để thay thế.

Ngoài ra, vì bạn đã hỏi điều này, plugin đã có chức năng này được thêm vào đó. Từ release notes for version 0.7.0 of the Android Gradle plugin:

Build Config bây giờ tự động chứa nhiều hằng cho PACKAGE_NAME, VERSION_CODE, VERSION_NAME Số phiên bản, BUILD_TYPE, hương vị cũng như FLAVOR_ nếu có một số khía cạnh hương vị.

1

Tôi có thể buộc gradle hoặc adt tạo BuildConfig.java đúng trong thư mục gen không?

Vâng, với một hack: một lần :generateDebugBuildConfig (thay thế Debug với các biến thể bạn cần) đã chạy trong gradle, bạn sẽ có cơ BuildConfig.java gì bạn cần.

Tôi làm điều này trên Windows, nhưng phải giống nhau cho Unix với vỏ ưa thích của bạn và cp

  1. mở Thuộc tính dự án và điều hướng đến Builders
  2. Thêm một "Chương trình" Builder
    • Vị trí: C:\Windows\System32\cmd.exe
    • Danh bạ công việc: Duyệt qua không gian làm việc ... và chọn y Dự án của chúng tôi,
      kết quả sẽ là một cái gì đó như: ${workspace_loc:/YourProject}
    • Arguments: /c "xcopy build\generated\source\buildConfig\debug gen /S /I /Y"
    • Thiết lập khi chạy
      • Refresh tab: "nguồn lực cụ thể" chọn gen thư mục
      • Build tab Options: "Sau khi xóa", "Thủ công", "Tự động" và "Chỉ định tài nguyên" làm thư mục gốc của dự án của bạn
  3. Hãy chắc chắn rằng người xây dựng mới này được đặt giữa Android Pre CompilerJava Builder

Lưu ý: đây là thực sự làm việc chống lại ADT và có lẽ sẽ có phần thiếu khác mà bạn có thể tìm thấy khó khăn để xử lý (applicationIdSuffix, resValue, nguồn biến thể các thư mục, chỉ để đặt tên một vài). Nó có thể dễ dàng từ bỏ trên ADT của Eclipse và chuyển sang Android Studio, Google dường như muốn điều này dù sao mà không công khai thừa nhận nó. Không có tiến bộ thực sự nào về ADT vì họ cho biết họ sẽ duy trì nó tại I/O 2013.