2015-05-16 17 views
7

Phiên bản 2.4 của Groovy có hỗ trợ chính thức cho phát triển ứng dụng android http://docs.codehaus.org/display/GROOVY/Groovy+2.4+release+notes.Cách thiết lập dự án Android Studio từ đầu cho phép tôi sử dụng groovy

trước Sau khi sử dụng Eclipse để phát triển Android, không có kinh nghiệm ở tất cả với Android Studio cũng không phải với Gradle, các hướng dẫn hiện hành lập dự án android groovy với Android Studio (ví dụ http://docs.groovy-lang.org/docs/next/html/documentation/tools-groovyc.html#section-android, https://github.com/groovy/groovy-android-gradle-plugin, hoặc http://hosain.net/2015/02/07/getting-started-with-android-development-using-groovy-2.4-and-android-studio.html) là quá mơ hồ, làm không làm việc cho tôi, và sự khác biệt trong số phiên bản được sử dụng bởi chúng là khó hiểu.

Tôi muốn xem hướng dẫn từng bước chi tiết hoạt động cho Android Studio 1.2.1.1 dành cho Linux và giải thích cách quyết định số phiên bản.

Trả lời

18

Sau khi tự mình học cách thực hiện, đây là mô tả từng bước mà tôi muốn đọc khi bắt đầu. Tôi đã sử dụng thông tin từ một số nguồn. Không có nguồn nào trong số này làm việc cho tôi và chúng khác nhau về số phiên bản và vị trí chèn nội dung vào các tập lệnh xây dựng. Những hướng dẫn này là kết quả của việc thử các kết hợp khác nhau và điền vào một số khoảng trắng.

Android Studio welcome screen

Từ màn hình chào mừng, chọn "Bắt đầu một dự án Android Studio mới".

new project wizard, page 1

Điền vào tên ứng dụng và một "miền công ty".

new project wizard, page 2

Không có thay đổi cần thiết trên trang này.

new project wizard, page 3

Ví dụ này sử dụng hoạt động trống.

new project wizard, page 4

dụ này sử dụng GroovyActivity tên cho màn hình android chính. Dự án mới hiện đã được tạo. Khi thu android đã hoàn tất việc tạo dự án, nó cho thấy hai tập tin mở như thế này:

newly created project, initial files opened

Bỏ qua các "vấn đề render" cho bây giờ. Nó sẽ được giải quyết sau này trong quá trình biên dịch. Đóng hai tệp đang mở bằng cách nhấp vào thánh giá của các tab của chúng.

mở build.gradle này (Học phần: ứng dụng) file:

build.gradle script for the app, original content

Chèn đoạn mã sau trước khi dòng đầu tiên:

buildscript { 
     repositories { 
      jcenter() 
     } 
     dependencies { 
      classpath 'com.android.tools.build:gradle:1.1.0' 
      classpath 'org.codehaus.groovy:gradle-groovy-android-plugin:0.3.6' 
     } 
    } 

inserted code at top of gradle script

Hãy tạm dừng cho một trong khi để phản ánh về số phiên bản.Các dòng

  classpath 'com.android.tools.build:gradle:1.1.0' 

  classpath 'org.codehaus.groovy:gradle-groovy-android-plugin:0.3.6' 

chứa số phiên bản. Làm cách nào để biết số phiên bản cần chèn ở đây? Vào thời điểm bạn đọc các hướng dẫn này, có thể đã có các bản phát hành mới và trừ khi bạn có yêu cầu phiên bản cụ thể, bạn sẽ muốn sử dụng phiên bản mới nhất của bất kỳ thứ gì được sử dụng ở đây trong tập lệnh gradle.

Làm cách nào bạn có thể tìm hiểu về các phiên bản mới nhất hiện có? Nó phụ thuộc:

Lưu ý rằng trình chỉnh sửa đã đánh dấu com.android.tools.build:gradle:1.1.0 với màu nền màu vàng. Khi bạn di chuyển con trỏ chuột qua văn bản này, một tooltip xuất hiện:

Tooltip indicating that there is a newer version of this gradle thing

Vì vậy, có vẻ như hãng phim android biết về phiên bản mới nhất cho điều này và khuyên bạn sử dụng nó. Lưu ý lời khuyên và cập nhật số phiên bản này lên phiên bản studio android của bạn cho biết.

Tuy nhiên, không có chú giải công cụ nào xuất hiện cho điều gradle-groovy-android-plugin này.

Điều gì đang xảy ra ở đây? Theo cách tôi hiểu, các tên và số phiên bản này xác định tên của các thành phần nhị phân được sử dụng cho ứng dụng của bạn hoặc để xây dựng ứng dụng của bạn, nhưng chúng cũng không phải là một phần của studio android, bạn cũng không phải tự tìm và cài đặt hoặc biên dịch chúng. Thay vào đó, tập lệnh xây dựng này chỉ định một kho lưu trữ nơi các thành phần nhị phân này hy vọng có thể được tải xuống từ đó. Hàm jcenter() dường như trả về vị trí của kho lưu trữ. Hiện tại, kho lưu trữ này là bintray.com.

Để tìm hiểu về phiên bản mới nhất của plugin android groovy android này, hãy truy cập bintray.com bằng trình duyệt web của bạn và sử dụng chức năng tìm kiếm của nó. Tìm kiếm groovy-android-plugin. Beginnig của kết quả sẽ như thế này tại thời điểm tôi viết những dòng này:

bintray search results for groova-android-plugin

Số tuyệt đối của kết quả được liệt kê là một chút nản lòng. Tôi hy vọng họ có một số phân loại phù hợp trong đó. Tìm kiếm trên trang đầu tiên, tôi chỉ thấy 2 kết quả phù hợp và số phiên bản mới nhất là 0.3.6.

Sau khi biết về những con số phiên bản mới nhất (tại thời điểm viết bài này), khi bắt đầu chính xác của các kịch bản gradle là mã này:

buildscript { 
     repositories { 
      jcenter() 
     } 
     dependencies { 
      classpath 'com.android.tools.build:gradle:1.2.3' 
      classpath 'org.codehaus.groovy:gradle-groovy-android-plugin:0.3.6' 
     } 
    } 

Về sửa đổi kịch bản gradle, chèn đoạn mã sau sau "áp dụng plugin: 'com.android.ứng dụng" dòng:

apply plugin: 'groovyx.grooid.groovy-android' 

gradle script with groovy plugin "applied"

Cuối cùng, gần cuối của kịch bản gradle, chèn một dòng

compile 'org.codehaus.groovy:groovy:2.4.1:grooid' 

để nó trông như thế này:

adding dependency on android-specific groovy compiler

Một lần nữa, có một số phiên bản cô ấy e, bạn có thể tìm phiên bản mới nhất trên bintray bằng cách tìm kiếm * grooid.jar (có, với dấu sao là ký tự đầu tiên). Danh sách kết quả kéo dài hai trang, trên trang thứ hai tôi thấy rằng 2.4.3 là phiên bản mới nhất:

searchin bintray for latest version of android specific groovy compiler

Sau khi thay đổi các tập tin gradle, gradle cần phải được "đồng bộ hóa" ed. Các gradle sẽ đồng bộ nếu bạn thoát khỏi android studio hoàn toàn và khởi động lại nó, vì vậy đây là những gì tôi đã làm vào thời điểm này. Bức ảnh này cho thấy sự đồng bộ sau khi khởi động lại:

gradle syncing

Sau đó tôi phát hiện ra rằng biểu tượng này trong thanh công cụ

The toolbar icon to initiate a gradle sync

kích hoạt đồng bộ.

Sau khi kết thúc đồng bộ, thay đổi khung bên trái từ quan điểm "Android" vào "dự án" xem với pull-down menu:

Left-pane pull-down-menu in action

Bây giờ xây dựng và thực hiện dự án của bạn trong giả lập ít nhất một lần. Tôi không chắc điều này thay đổi, nhưng nếu bạn không xây dựng và thực hiện dự án của mình ngay bây giờ, trong khi mọi thứ vẫn chỉ là nguồn java, thì các nguồn groovy của bạn sẽ không được tìm thấy sau khi chúng ta thay đổi thành groovy. Bạn có thể xây dựng và chạy dự án của mình bằng cách sử dụng biểu tượng chạy trên thanh công cụ hoặc với phím tắt Shift-F10.

Sau khi thực hiện dự án của bạn trong trình mô phỏng, quay trở lại ngăn bên trái, vẫn hiển thị chế độ xem "Dự án". Trong khung nhìn này, điều hướng đến thư mục app/src/main, hiện chứa các thư mục con java và res, và tệp AndroidManifest.xml.

Bây giờ bạn sẽ tạo thêm "Java Folder" bên dưới chính, với sự giúp đỡ của các menu ngữ cảnh:

Context menu for creating a new Java Folder

Hãy chắc chắn để sử dụng vào mục menu New-> Folder-> Java Folder, và không phải Mới-> Danh bạ, điều này sẽ gây ra sự cố sau này.

Trong màn hình tiếp theo,

Name for new directory

đánh dấu vào hộp kiểm "Change Folder Location" và chắc chắn rằng tên trong lĩnh vực nhập là src/main/groovy.

Nếu bạn vẫn mở tập lệnh gradle đó, bạn sẽ thấy rằng tập lệnh đã được điều chỉnh và chứa tên của thư mục mới trong dòng bắt đầu bằng "sourceSets". Để có biện pháp tốt, hãy nhấp vào biểu tượng đồng bộ hóa gradle để đảm bảo mọi thứ được đồng bộ hóa chính xác.

The toolbar icon to initiate a gradle sync

Tiếp theo, bạn muốn đạt được điều đó vào thư mục groovy mới chứa đường dẫn gói phù hợp cho tên gói ứng dụng của bạn. Cách duy nhất mà tôi đã tìm thấy để đạt được điều này đúng, là tạo ra một, tạm thời, lớp java mới với menu ngữ cảnh của thư mục groovy,

Context menu for creating new class in groovy folder

và nhập vào tên của lớp này có đủ điều kiện với tên gói:

Entering full package name for new class

Hãy chắc chắn rằng chính tả của tên gói là đúng!

Gói mới sẽ xuất hiện trong thư mục groovy và bên trong nó, lớp java tạm thời.

Tất cả các lớp groovy và cũng tất cả các lớp học java mà làm trong một số sử dụng cách của các tầng lớp groovy phải sống dưới src/main/groovy thư mục thay vì chính thư mục src// java. Bây giờ chúng ta có thể kéo lớp Hoạt động từ cây thư mục java để cùng một gói dưới thư mục groovy:

Moving the activity to the groovy directory

Lớp tạm thời bây giờ có thể bị xóa (với menu ngữ cảnh), và lớp hoạt động có thể được di chuyển từ .java sang .groovy bằng cách chọn Refactor-> Rename File từ trình đơn ngữ cảnh.

Java to Groovy through rename file

Các tập tin mở rộng java chỉ đơn giản là thay thế bằng một phần mở rộng .groovy. Trong cùng một cách, sau này bạn có thể tạo các lớp java mới và đổi tên tệp của chúng thành .groovy khi bạn thực sự muốn tạo các lớp groovy. Bây giờ bạn có thể thay đổi một số mã trong hoạt động để xác minh rằng bạn thực sự có thể có mã groovy trong một ứng dụng Android. Gợi ý:

Cho "Hello World" text xem một id trong file res/layout/activity_groovy.xml, như thế này:

id through layout xml file

Sau đó, lập trình thay đổi văn bản thể hiện bởi quan điểm này sử dụng groovy của chuỗi suy:

Changing the label's text

xây dựng và thực hiện trong giả lập:

Executing the app with groovy code in the emulator, showing the id of the TextView inside the TextView

+0

Tôi gặp lỗi ... Lỗi: Thực thi không thành công cho công việc ': app: compileDebugGroovyWithGroovyc'. > Không có thuộc tính như vậy: bootClasspath cho lớp: com.android.builder.core.AndroidBuilder –

+0

@ MicheleDaRos: Xin lỗi, không có đầu mối. @everyone: Tôi đã kiểm tra và quy trình này vẫn hoạt động với AndroidStudio 2.1.1. Điểm khác biệt lớn nhất là "Hoạt động trống" hiện là "Hoạt động trống". –

+0

Ảnh chụp màn hình của bạn bị mờ. Chỉ cần hiển thị cho chúng tôi tệp raw ** build.gradle **.Điều đó là đủ để giúp chúng tôi khắc phục sự cố của bạn ... –

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