2017-12-13 28 views
5

Tôi nhận được lỗi này trên huawei nexus 6p của tôi trong khi đưa ứng dụng vào danh sách ứng dụng được bảo vệ.com.huawei.systemmanager/com.huawei.systemmanager.optimize.process.ProtectActivity}; bạn đã tuyên bố hoạt động này trong tệp AndroidManifest.xml của mình chưa?

"UncaughtException: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.huawei.systemmanager/com.huawei.systemmanager.optimize.process.ProtectActivity}; have you declared this activity in your AndroidManifest.xml?" 

và tôi đang sử dụng mã này để đưa các ứng dụng trong danh sách ứng dụng được bảo vệ

if ("huawei".equalsIgnoreCase(Build.MANUFACTURER) && !settingsManager.getKeyStateProtectedApp()) { 
       AlertDialog.Builder builder = new AlertDialog.Builder(this); 
       builder.setTitle("Is app killing?").setMessage("Add LastingSales to protected apps list to keep it running in background.") 
         .setPositiveButton("YES", new DialogInterface.OnClickListener() { 
          @Override 
          public void onClick(DialogInterface dialogInterface, int i) { 
           Intent intent = new Intent(); 
           intent.setComponent(new ComponentName("com.huawei.systemmanager", "com.huawei.systemmanager.optimize.process.ProtectActivity")); 
           startActivity(intent); 
           settingsManager.setKeyStateProtectedApp(true); 
          } 
         }).create().show(); 
      } 

Vấn đề ở đây là rằng đây không phải là một hoạt động của riêng tôi mà tôi có thể tuyên bố trong manifest. Tôi vẫn phải khai báo nó trong biểu hiện? nếu tôi phải làm như thế nào tôi có thể làm điều này?

SOLVED lý do là huawei nexus 6p có Android thuần túy và do đó không có hoạt động như vậy. nhưng mã đã rơi xuống đó vì Build.MANUFACTURER trả về "huawei". Tuy nhiên Build.BRAND trả về "google" để thêm vào kiểm tra bổ sung như

if ("huawei".equalsIgnoreCase(Build.MANUFACTURER) && !"google".equalsIgnoreCase(Build.BRAND) && !settingsManager.getKeyStateProtectedApp() 
+1

thêm hoạt động bạn đang sử dụng trong Manifest.xml –

+0

Bạn sẽ cần phải thêm hoạt động vào tệp kê khai, ngay cả khi đó là một phần của mô-đun bên thứ ba. –

+0

Mã của tôi hoạt động hoàn hảo trên một số thiết bị huawei khác như danh dự huawei h30-u10. Không khai báo. tại sao không phải trên huawei nexus 6p. nếu tôi cần khai báo nó trong biểu hiện thì làm thế nào? –

Trả lời

1

Mệnh if cần phải kiểm tra cẩn thận các nhà sản xuất và thương hiệu vì vậy nó sẽ chạy trên chỉ là điện thoại đó là thích hợp cho.

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