Lỗi app cant not installed by this user trên android năm 2024
You can usually clear an app’s cache and data through your phone’s Settings app. Settings can vary by phone. For more info, contact your device manufacturer. Show
Tip: If problems continue after you cleared the app's cache and data, you could need to contact its developer. Learn how to contact a developer. Sync device with Google serversImportant: Settings can vary by phone. For more info, contact your device manufacturer.
Uninstall the app Caution: Any data saved in this app will be erased.
Tip: If you want to use the app again, you can try to reinstall it. Learn how to reinstall apps. Contact the app developer Important: If you tried the troubleshooting steps but still have trouble, contact us or the app developer. Tài liệu này trình bày các phương pháp hay nhất để giúp bạn chẩn đoán vấn đề và đảm bảo Hồ sơ cơ sở hoạt động đúng cách nhằm mang lại nhiều lợi ích nhất. Vấn đề về bản dựngNếu đã sao chép ví dụ về Hồ sơ cơ sở trong ứng dụng mẫu Now in Android, bạn có thể gặp thất bại trong kiểm thử (khi thực hiện tác vụ trong Hồ sơ cơ sở) cho biết rằng hoạt động kiểm thử không chạy được trên một trình mô phỏng:
Lỗi này xảy ra vì ứng dụng Now in Android dùng một thiết bị do Gradle quản lý để tạo Hồ sơ cơ sở. Lỗi này có thể xảy ra vì bạn thường không được chạy phép đo điểm chuẩn hiệu suất trên một trình mô phỏng. Tuy nhiên, vì không thu thập các chỉ số về hiệu suất khi tạo Hồ sơ cơ sở nên để thuận tiện, bạn có thể chạy bộ sưu tập Hồ sơ cơ sở trên các trình mô phỏng. Để sử dụng Hồ sơ cơ sở với một trình mô phỏng, hãy tạo và cài đặt bản dựng qua dòng lệnh, đồng thời đặt một đối số để bật các quy tắc của Hồ sơ cơ sở:
Ngoài ra, bạn có thể tạo một cấu hình chạy tuỳ chỉnh trong Android Studio để bật Hồ sơ cơ sở trên các trình mô phỏng bằng cách chọn Run > Edit Configurations (Chạy > Chỉnh sửa cấu hình): Hình 1. Thêm cấu hình chạy tuỳ chỉnh để tạo Hồ sơ cơ sở trong ứng dụng Now in Android.Vấn đề về cài đặtHãy kiểm tra để đảm bảo rằng APK hoặc AAB mà bạn đang tạo là của một biến thể bản dựng có chứa Hồ sơ cơ sở. Để kiểm tra, cách dễ nhất là mở APK trong Android Studio bằng cách chọn Build > Analyze APK (Bản dựng > Phân tích APK), mở APK của bạn rồi tìm hồ sơ trong tệp Hồ sơ cơ sở cần được biên dịch trên thiết bị đang chạy ứng dụng. Đối với cả lượt cài đặt qua cửa hàng ứng dụng và ứng dụng được cài đặt bằng
0 cho phép bạn truy vấn trạng thái cài đặt và biên dịch hồ sơ, như trong ví dụ sau: Kotlinprivate const val TAG = "MainActivity" class MainActivity : ComponentActivity() { ... override fun onResume() { }
private suspend fun logCompilationStatus() { }Javapublic class MainActivity extends ComponentActivity { }Những mã kết quả sau đưa ra gợi ý về nguyên nhân gây ra một số vấn đề:
1 Hồ sơ được cài đặt, biên dịch và dùng bất cứ khi nào ứng dụng được chạy. Đây là kết quả mà bạn muốn thấy.
2 Không tìm thấy hồ sơ nào trong APK hoặc AAB đang chạy. Hãy đảm bảo rằng bạn đang sử dụng một biến thể bản dựng có chứa Hồ sơ cơ sở nếu thấy lỗi này và rằng APK đó có chứa một hồ sơ.
3 Chưa cài đặt hồ sơ nào cho ứng dụng này khi cài đặt ứng dụng qua cửa hàng ứng dụng hoặc trình quản lý gói. Nguyên nhân chính gây ra mã lỗi là trình cài đặt hồ sơ không chạy do
4 bị tắt. Xin lưu ý rằng khi lỗi này được báo cáo, hệ thống vẫn tìm thấy hồ sơ được nhúng trong tệp APK của ứng dụng. Khi không tìm thấy hồ sơ được nhúng, mã lỗi được trả về là
2.
6 Đã tìm thấy một hồ sơ trong tệp APK hoặc AAB và hồ sơ này sẽ được đưa vào hàng đợi biên dịch. Khi được
8 Một hồ sơ không phù hợp sẽ được cài đặt và ứng dụng đã được biên dịch với hồ sơ đó. Đây là kết quả của quá trình cài đặt qua Cửa hàng Google Play hoặc trình quản lý gói. Xin lưu ý rằng kết quả này khác với
1 vì hồ sơ không phù hợp sẽ chỉ biên dịch bất kỳ phương thức nào vẫn dùng được giữa hồ sơ và ứng dụng. Kích thước hồ sơ nhỏ hơn đáng kể so với dự kiến và sẽ có ít phương thức được biên dịch hơn so với số phương thức có trong Hồ sơ cơ sở. private const val TAG = "MainActivity" class MainActivity : ComponentActivity() { ... override fun onResume() { }
private suspend fun logCompilationStatus() { }0
0 không thể ghi tệp kết quả xác minh vào bộ nhớ đệm. Điều này có thể xảy ra do có lỗi về quyền đối với thư mục ứng dụng hoặc nếu thiết bị không có đủ dung lượng ổ đĩa trống. private const val TAG = "MainActivity" class MainActivity : ComponentActivity() { ... override fun onResume() { }
private suspend fun logCompilationStatus() { }2 ProfileVerifier private const val TAG = "MainActivity" class MainActivity : ComponentActivity() { ... override fun onResume() { }
private suspend fun logCompilationStatus() { }3 chỉ hỗ trợ Android 9 (API cấp 28) trở lên. private const val TAG = "MainActivity" class MainActivity : ComponentActivity() { ... override fun onResume() { }
private suspend fun logCompilationStatus() { }4 Hệ thống sẽ gửi private const val TAG = "MainActivity" class MainActivity : ComponentActivity() { ... override fun onResume() { }
private suspend fun logCompilationStatus() { }5 khi truy vấn private const val TAG = "MainActivity" class MainActivity : ComponentActivity() { ... override fun onResume() { }
private suspend fun logCompilationStatus() { }6 của gói ứng dụng. Điều này hiếm khi xảy ra. Hãy thử gỡ cài đặt ứng dụng rồi cài đặt lại mọi thứ. private const val TAG = "MainActivity" class MainActivity : ComponentActivity() { ... override fun onResume() { }
private suspend fun logCompilationStatus() { }7 Tệp kết quả xác minh trước trong bộ nhớ đệm đã tồn tại nhưng không đọc được. Điều này hiếm khi xảy ra. Hãy thử gỡ cài đặt ứng dụng rồi cài đặt lại mọi thứ. Sử dụng ProfileVerifier trong phiên bản phát hành chính thứcTrong phiên bản phát hành chính thức, bạn có thể sử dụng
0 cùng với các thư viện phân tích-báo cáo, chẳng hạn như Google Analytics cho Firebase để tạo các sự kiện phân tích cho biết trạng thái hồ sơ. Ví dụ: bạn sẽ nhanh chóng nhận được thông báo nếu phiên bản ứng dụng mới được phát hành không chứa Hồ sơ cơ sở. Buộc thực hiện quy trình biên dịch Hồ sơ cơ sởNếu trạng thái biên dịch của Hồ sơ cơ sở là
6, bạn có thể buộc thực hiện quy trình biên dịch ngay lập tức bằng cách sử dụng public class MainActivity extends ComponentActivity { }0:
Kiểm tra trạng thái biên dịch mà không có ProfileVerifierNếu không dùng
0, bạn có thể kiểm tra trạng thái biên dịch bằng cách sử dụng public class MainActivity extends ComponentActivity { }0, mặc dù mã này không cung cấp thông tin chi tiết chuyên sâu như
0:
Khi sử dụng public class MainActivity extends ComponentActivity { }0, kết quả tạo ra sẽ tương tự như sau:
Giá trị trạng thái cho biết trạng thái biên dịch hồ sơ và là một trong các giá trị sau: Trạng thái biên dịch Ý nghĩa public class MainActivity extends ComponentActivity { }5 Có hồ sơ được biên dịch và đang được sử dụng. public class MainActivity extends ComponentActivity { }6 Không có hồ sơ đã biên dịch nào. Trạng thái public class MainActivity extends ComponentActivity { }6 không có nghĩa là tệp APK hoặc AAB không chứa hồ sơ, vì hồ sơ này có thể được đưa vào hàng đợi biên dịch của tác vụ tối ưu hoá DEX tiếp theo ở chế độ nền. Giá trị lý do cho biết yếu tố nào kích hoạt quá trình biên dịch hồ sơ và là một trong các giá trị sau: Lý do Ý nghĩa public class MainActivity extends ComponentActivity { }8 Hồ sơ cơ sở được biên dịch theo cách thủ công hoặc bởi Google Play khi ứng dụng được cài đặt. public class MainActivity extends ComponentActivity { }9 Một hồ sơ đã được biên dịch khi thiết bị của bạn ở trạng thái không hoạt động. Đây có thể là Hồ sơ cơ sở hoặc hồ sơ được thu thập trong quá trình dùng ứng dụng.
0 Quá trình biên dịch được kích hoạt bằng adb. Đây có thể là Hồ sơ cơ sở hoặc hồ sơ được thu thập trong quá trình dùng ứng dụng. Vấn đề về hiệu suấtPhần này trình bày một số phương pháp hay nhất để giúp bạn xác định chính xác và đo điểm chuẩn Hồ sơ cơ sở nhằm thu được nhiều lợi ích nhất từ những hồ sơ đó. Đo chính xác điểm chuẩn các chỉ số khởi độngHồ sơ cơ sở của bạn sẽ mang lại nhiều hiệu quả hơn nếu bạn xác định rõ các chỉ số khởi động. Hai chỉ số chính là và . TTID là khi ứng dụng vẽ khung hình đầu tiên. Bạn cần phải giữ cho chỉ số này ở mức thấp nhất có thể vì hệ thống sẽ hiển thị nội dung nào đó cho người dùng biết ứng dụng đang chạy. Thậm chí, bạn có thể hiển thị một chỉ báo tiến trình không xác định để cho biết ứng dụng có phản hồi. TTFD là thời điểm ứng dụng có thể thực sự tương tác. Bạn cần phải giữ nội dung này ngắn nhất có thể để tránh gây khó chịu cho người dùng. Nếu bạn ra tín hiệu TTFD chính xác, hệ thống sẽ biết rằng mã đang chạy đến TTFD là một phần của quá trình khởi động ứng dụng. Do đó, hệ thống có nhiều khả năng sẽ đặt mã này vào hồ sơ. Hãy duy trì cả TTID và TTFD ở mức thấp nhất có thể để ứng dụng của bạn phản hồi. Hệ thống có thể phát hiện TTID, hiển thị chỉ số này trong Logcat và báo cáo chỉ số này là một phần của phép đo điểm chuẩn khởi động. Tuy nhiên, hệ thống không thể xác định TTFD và ứng dụng có trách nhiệm báo cáo khi chỉ số này đạt đến trạng thái tương tác được vẽ đầy đủ. Bạn có thể thực hiện việc này bằng cách gọi hoặc nếu đang dùng Jetpack Compose. Nếu nhiều tác vụ của bạn ở chế độ nền đều cần phải hoàn tất trước khi ứng dụng được coi là vẽ đầy đủ, thì bạn có thể sử dụng
3, như được mô tả trong phần . Tránh khởi động ứng dụng bị ràng buộc bởi I/ONếu ứng dụng của bạn đang thực hiện nhiều lệnh gọi I/O hoặc lệnh gọi mạng trong khi khởi động, thì việc này có thể ảnh hưởng tiêu cực đến cả thời gian khởi động ứng dụng và độ chính xác của phép đo điểm chuẩn khi khởi động. Các lệnh gọi hạng nặng này có thể mất một khoảng thời gian không xác định và có thể thay đổi theo thời gian, thậm chí là giữa các lần lặp lại của phép đo điểm chuẩn đó. Lệnh gọi I/O thường hiệu quả hơn lệnh gọi mạng, vì lệnh gọi mạng có thể chịu ảnh hưởng của các yếu tố bên ngoài thiết bị và trên chính thiết bị đó. Tránh dùng các lệnh gọi mạng khi đang khởi động. Khi sử dụng một lệnh gọi hoặc bắt buộc phải dùng lệnh gọi kia, hãy sử dụng lệnh gọi I/O. Bạn nên thực hiện quá trình khởi động ứng dụng hỗ trợ cấu trúc ứng dụng mà không cần lệnh gọi mạng hoặc lệnh gọi I/O, ngay cả khi chỉ dùng lệnh gọi đó khi khởi động phép đo điểm chuẩn. Điều này giúp đảm bảo mức thay đổi ít nhất có thể giữa các lần lặp lại phép đo điểm chuẩn. Bao gồm mọi hành trình quan trọng của người dùngĐiều quan trọng là bạn phải đề cập chính xác mọi hành trình quan trọng của người dùng trong quá trình tạo Hồ sơ cơ sở. Mọi hành trình của người dùng không được đề cập sẽ không được cải thiện qua Hồ sơ cơ sở. Hồ sơ cơ sở có hiệu quả nhất bao gồm mọi hành trình thường gặp của người dùng khi khởi động cũng như hành trình của người dùng trong ứng dụng liên quan đến hiệu suất, chẳng hạn như việc cuộn danh sách. |