2015-06-03 15 views
22

Tôi gặp lỗi này khi cố gắng tạo APK đã ký. Vấn đề là, ứng dụng của tôi có thể chạy và gỡ lỗi bình thường trên thiết bị của tôi. Tôi không biết tại sao khi tôi cố gắng tạo APK, lỗi này xuất hiện. Làm cách nào để bỏ qua lỗi này và tạo APK đã ký? Tôi đang sử dụng Android Studio 1.2.1.1 dành cho Mac.Làm thế nào để bỏ qua lỗi "tránh các hàm tạo không mặc định trong các đoạn"?

+0

lỗi nào, bạn có thể đăng lỗi không? – 3xplore

+0

Bạn nên để trống các counstructors của các mảnh vỡ, tất cả các công việc gây quỹ phải được thực hiện trong phương thức onCreate(). – pawelo

+0

Vâng, tôi quan tâm nhiều hơn để bỏ qua lỗi này. Làm cách nào ứng dụng của tôi có thể chạy bình thường mà không có lỗi khi gỡ lỗi, khi tạo APK chỉ thông báo lỗi này xuất hiện? – user2872856

Trả lời

77

Tìm thấy giải pháp. Cách dễ dàng hơn là để thêm chúng vào gradle:

android { 
      lintOptions { 
       checkReleaseBuilds false 
      } 
     } 

Hoặc cách khác là thêm @SuppressLint("ValidFragment")

+3

Bạn không nên có hàm tạo mặc định trong phân đoạn. Bạn có thể thêm phương thức tĩnh, như getInstance (đối số của bạn ...) và tạo phân đoạn mới từ đó và đặt các đối số đó thành đoạn của bạn – Heisenberg

+0

Xem ví dụ sau: http://www.androiddesignpatterns.com/2012/05/using- newinstance-to-instantiate.html – Heisenberg

+0

Làm việc Cảm ơn bạn :) – InsaneCat

9

Nó nằm trong hợp đồng của Fragment: "Mọi đoạn phải có một hàm tạo rỗng, vì vậy nó có thể được khởi tạo khi khôi phục trạng thái hoạt động của nó. Chúng tôi khuyên các lớp con không có các hàm tạo khác với các tham số, không được gọi khi đoạn được tái khởi tạo, thay vào đó, các đối số có thể được cung cấp bởi người gọi với setArguments (Bundle) và sau đó được truy xuất bởi Fragment with getArguments() "

16

tắt lint hoàn toàn không phải là một giải pháp phù hợp nếu bạn vẫn muốn sử dụng những ưu điểm của nó. Nếu bất cứ ai đi qua này, tôi tìm cách tắt các lỗi cụ thể chỉ là một giải pháp thanh lịch hơn:

android { 
    lintOptions { 
     disable 'ValidFragment' 
    } 
} 
4

Đối với tôi chỉ làm việc sự kết hợp của hai câu trả lời trước:

android { 
    lintOptions { 
     disable 'ValidFragment' 
     checkReleaseBuilds false 
    } 
} 

Nhưng hãy nhớ, những một vá lỗi xấu để tránh các cảnh báo/lỗi lint, giải pháp là để thích ứng với hàm tạo Fragment cho một Static Static newmentstance (params) công khai Fragment constructor.

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