2011-02-27 33 views
23

Tôi có một dự án Android có tệp xây dựng Ant. Nó hoạt động tuyệt vời thông qua các dòng lệnh:Sử dụng Android build.xml trong nhật thực?

[email protected]:~/git/$ ant 
Buildfile: build.xml 
    [setup] Android SDK Tools Revision 8 
    [setup] Project Target: Android 2.1-update1 
    [setup] API level: 7 
    [setup] 

    ... etc etc etc ... 

Nhưng khi tôi cố gắng sử dụng này trong nhật thực, build.xml có màu đỏ-X.

<?xml version="1.0" encoding="UTF-8"?> 
<project name="MyWonderfulProject" default="help"> 

<project được nhấn mạnh với các lỗi: Mặc định mục tiêu giúp đỡ không tồn tại trong dự án này

Nó có vẻ như tất cả mọi người khác trên internet có vấn đề này, và nó dường như được gây ra bởi sự kiện rằng build.xml đang sử dụng các chỉ thị đến từ nhiều tệp lồng nhau dành riêng cho Android mà tệp buildfile này nhập khẩu.

Tôi có các dự án khác trong không gian làm việc sử dụng cơ chế xây dựng của Eclipse, vì vậy tôi biết rằng môi trường của tôi có thể biên dịch, chạy và triển khai các ứng dụng Android mà không có sự cố. Nhưng buildfile này đang khiến tôi đau đầu.

Sửa lỗi là gì?

Trả lời

0

Nếu build.xml của bạn có mục tiêu giúp đỡ của chính mình chứ không phải dựa vào nhập khẩu một, sau đó bạn cần phải đặt mục tiêu mà trước dòng

<taskdef name="setup" classname="com.android.ant.SetupTask" classpathref="android.antlibs" /> 
+1

Tôi có một vấn đề tương tự, và không có sự giúp đỡ mục tiêu tự xác định. mục tiêu trợ giúp từ android_rules.xml nên được sử dụng, nhưng thậm chí dán nó vào tệp build.xml cũng không giải quyết được lỗi này. (Eclipse 3.6, android skd 10, target là android-7) xây dựng với kiến ​​trên dòng lệnh hoạt động hoàn hảo. – forksandhope

1

Đây không phải là thực sự là một câu trả lời, nhưng đối với những gì nó có giá trị, tôi đã có thể làm cho vấn đề biến mất bằng cách loại bỏ dự án eclipse khỏi không gian làm việc, xóa. * trong thư mục dự án của tôi và bắt đầu lại. Eclipse FTW!

13

Tùy chọn 1:

Nhập tệp mẫu ant Android vào tệp build.xml. Giả sử bạn đã sdk.dir quy định tại local.properties và trỏ đến thư mục cài đặt Android của bạn, thêm dòng sau dưới các yếu tố dự án:

<import file="${sdk.dir}/platforms/${target}/templates/android_rules.xml" /> 

Phương án 2:

Để thực sự sử dụng các chỉ tiêu kiến ​​Android trong quan điểm kiến ​​Eclipse, ở trên sẽ không giúp đỡ. Dường như có một số mức độ không tương thích chung mà tôi chưa tìm ra để giải quyết hoàn toàn, nhưng để làm cho mọi thứ hoạt động ở mức thỏa đáng mặc dù bạn có thể:

  • Nhập dự án build.xml làm người xây dựng. Thuộc tính dự án -> Nhà xây dựng -> nhập.
  • Không sử dụng tùy chọn 1. Thay vào đó hãy bỏ qua cảnh báo về mẫu bị thiếu. Thuộc tính toàn cầu -> Ant -> Editor -> Problems. Thêm build.xml vào tên.

Điều này sẽ có tác động đến tất cả các dự án và bỏ qua các lỗi thực tế, vì vậy đây không phải là giải pháp hoàn hảo. Nhưng bạn có thể sử dụng các tùy chọn xây dựng Android bên trong Eclipse, cũng như từ dòng lệnh.

+0

Đây là một bước đi đúng hướng! Theo dõi: bây giờ, dấu X-đỏ sẽ biến mất khi tôi xem tệp build.xml. Nhưng trong quan điểm Ant nó vẫn có một lỗi: 'Không thể tìm thấy $ {sdk.dir}/platforms/$ {target} /templates/android_rules.xml được nhập từ ...'. Khi tôi di chuột qua các biến trong trình chỉnh sửa, các giá trị chính xác sẽ bật lên. Nhưng quan điểm của Ant dường như không thay đổi điều đó. Cứu giúp? – poundifdef

+0

Bạn đã làm ngày của tôi, Tatu Lahtela !! Cảm ơn câu trả lời tuyệt vời, điều đó đã giúp ích rất nhiều !! :-) – Bryan

+0

Điều này gần như hoạt động! Phối cảnh Ant không hiển thị các mục tiêu trong tệp build.xml của tôi để tôi có thể nhấp đúp vào một mục tiêu riêng lẻ. Bạn có nhận được hành vi tương tự không? – poundifdef

4

Điều này không khắc phục được sự cố, nhưng nó sẽ khiến Eclipse ngừng cản trở bạn. Truy cập Window > Preferences > Ant > Editor và chọn tab Problems. Đánh dấu vào ô ignore all buildfile problems.

+0

Điều này gần như hoạt động! Phối cảnh Ant không hiển thị các mục tiêu trong tệp build.xml của tôi để tôi có thể bấm đúp vào một mục tiêu riêng lẻ. Bạn có nhận được cùng một hành vi không? – poundifdef

+0

Sau khi kiểm tra hộp bỏ qua phải mở/đóng build.xml – Asahi

6

Có một mục tiêu được gọi là 'trợ giúp' được xác định trong $ {sdk.dir}/tools/ant/main_rules.xml như bên dưới,

<target name="help"> 

    <echo>Android Ant Build. Available targets:</echo> 
    <echo> help:  Displays this help.</echo> 
    <echo> clean:  Removes output files created by other targets.</echo> 
    <echo> compile: Compiles project's .java files into .class files.</echo> 
    <echo> debug:  Builds the application and signs it with a debug key.</echo> 
    <echo> release: Builds the application. The generated apk file must be</echo> 
    <echo>    signed before it is published.</echo> 
    <echo> install: Installs/reinstalls the debug package onto a running</echo> 
    <echo>    emulator or device.</echo> 
    <echo>    If the application was previously installed, the</echo> 
    <echo>    signatures must match.</echo> 
    <echo> uninstall: Uninstalls the application from a running emulator or</echo> 
    <echo>    device.</echo> 
</target> 

sao chép tệp này vào tệp build.xml của bạn và nó sẽ hoạt động.

+2

Có vẻ như bạn đang làm việc, tất cả những gì bạn cần là tamberg

2

Tôi có cùng một vấn đề và tất cả tôi đã làm là goto trên eclipse

Window->Preferences->Ant->Editor->Problems 

và nhấp

Ignore All Build File Problems. 
Các vấn đề liên quan