2011-09-07 31 views
17

Trong khi tiếp tục phát triển ứng dụng và kiểm tra trên điện thoại thực, tôi cần phải có phiên bản phát hành của nó trên cùng một điện thoại, cho mục đích trình diễn (phiên bản phát hành phản hồi nhanh hơn nhờ không có nhật ký) .Làm cách nào để có cả gói Gỡ lỗi và Phát hành trên cùng một thiết bị?

Vấn đề là cách duy nhất để làm cho hai ứng dụng cùng tồn tại trên cùng một thiết bị trong Android là có tên gói khác nhau.

Nhưng tên gói yêu cầu tái bao thanh toán và rất nhiều tuyên truyền của nhãn hiệu sửa chữa ... chưa kể đến rằng đây lẫn lộn điều khiển phiên bản ...

Lý tưởng nhất, Eclipse + ADT sẽ cho phép phụ thêm một biến modifier đó sẽ tự động tạo ra một tên gói khác để gỡ lỗi/phát hành và sẽ cho phép sự tồn tại như vậy, nhưng tôi không thể tìm thấy bất kỳ cơ chế nào cho phép thực hiện điều đó.

Bạn có biết cách giải quyết vấn đề này không?

Các giải pháp và ý tưởng sáng tạo được hoan nghênh.

Trả lời

0

Bạn có thể muốn thử this technique sử dụng ant, Jenkins và có lẽ các công cụ khác để tự động đổi tên gói theo đề xuất của @LAS_VEGAS.

Mặc dù không phải những gì bạn yêu cầu, this cool code snippet có thể giúp bạn tìm hiểu thời gian chạy xem mã của bạn có đang gỡ lỗi hay không.

Một nỗ lực thú vị khác có thể được tìm thấy trong this thread. Tôi không chắc chắn nếu nó hoạt động trên Android.

2

Cách duy nhất tôi biết là thay đổi tên gói trong tệp kê khai ứng dụng của bạn. Eclipse sẽ xử lý tất cả các đổi tên mã cho bạn.

+0

Wow! Điều đó gần như hiệu quả. Tôi nối thêm một 'd' ở cuối tên gói trong tệp kê khai, làm sạch dự án để xây dựng lại và Eclipse không phàn nàn gì cả. Tôi vui vẻ tiến hành để chạy nó nhưng sau đó nó "lực lượng đóng cửa". Nó chỉ ra rằng ứng dụng của tôi sử dụng phản ánh (nhà máy lớp) và Android không thích sự khác biệt giữa tên gói của tệp kê khai và tên gói .java. +1 để đến gần quá. – an00b

+0

nếu bản phát hành bản phát hành của bạn đã kích hoạt chế độ bảo vệ proguard và nếu bạn đã thêm một số _rules_ tùy chỉnh vào proguard.cfg, thì chúng cũng có thể chứa tên gói.Ngoài ra, nếu bạn đã tạo các tiện ích View tùy chỉnh và thêm chúng vào một số bố cục XML, chúng cũng được đặt tên theo gói. – superjos

2

Bạn có thể đặt tất cả mã của mình trong một số Library Project và sau đó chỉ có hai dự án bình thường, có tên gói khác và chỉ bao gồm dự án thư viện trong cả hai?

Điều này sẽ giữ tất cả mã của bạn ở một nơi. Các dự án bình thường rất có thể sẽ chỉ cần một tệp kê khai hợp lệ trỏ đến các hoạt động trong dự án thư viện.

+0

Dự án Thư viện cũng có đăng nhập gỡ lỗi ... (IOW, Dự án Thư viện yêu cầu xây dựng có điều kiện giống như ứng dụng). Giải pháp này không hiệu quả đối với tôi mà là 1 cho đề xuất quảng cáo. – an00b

4

Sử dụng Android Studio vì gradle làm cho cuộc sống của bạn dễ dàng hơn nhiều - chỉ cần sử dụng applicationIdSuffix

android { 
    ... 
    buildTypes { 
    release {...} 
    debug { 
     applicationIdSuffix '.debug' 
    } 
    } 
} 

Để biết thêm đi here.

0

Trong Android Studio, Thêm các biến thể xây dựng bằng cách sử dụng Hương vị sản phẩm có thể dễ dàng tùy chỉnh cho các môi trường khác nhau và để kiểm tra cạnh nhau nhiều biến thể ứng dụng của cùng một ứng dụng. Kiểm tra liên kết này để biết thêm thông tin - Configuring Gradle

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