2017-01-03 24 views
8

Tôi gặp phải lỗi xây dựng sau khi cập nhật plugin máy ảnh cordova từ 2.1.1 đến 2.3.1. Dưới đây là chi tiết phiên bảnLỗi xây dựng Android khi nâng cấp plugin máy ảnh Cordova

phiên bản cordova: 6.3.1, cordova-plugin-camera 2.1.1 "Camera". Dưới đây là các bước tôi followin

cordova plugin remove cordova-plugin-camera --save 
cordova plugin add cordova-plugin-camera --save 

Tôi thấy file config.xml đã được cập nhật

Khi tôi xây dựng cordova android build tôi nhận được dưới đây lỗi Lỗi: cmd: Command thất bại với lối ra mã 1 Đầu ra lỗi: Lưu ý: Một số tệp đầu vào sử dụng hoặc ghi đè API không dùng nữa. Lưu ý: Biên dịch lại với -Xóa: không dùng nữa để biết chi tiết. Lưu ý: Một số tệp đầu vào sử dụng hoặc ghi đè API không dùng nữa. Lưu ý: Biên dịch lại với -Xóa: không dùng nữa để biết chi tiết. Cảnh báo : chuỗi 'menu_settings' không có bản dịch mặc định.

nền tảng \ android \ src \ org \ apache \ cordova \ camera \ CameraLauncher.java: 32: lỗi: không thể tìm thấy biểu tượng nhập org.apache.cordova.BuildHelper; biểu tượng: lớp BuildHelper vị trí: gói org.apache.cordova nền tảng \ android \ src \ org \ apache \ cordova \ camera \ CameraLauncher.java: 140: lỗi: không thể tìm thấy biểu tượng this.applicationId = (String) BuildHelper. getBuildConfigValue (cordova.getActivity(), "APPLICATION_ID"); ^ biểu tượng: biến BuildHelper vị trí: class CameraLauncher Lưu ý: Một số tệp đầu vào sử dụng hoặc ghi đè API không dùng nữa. Lưu ý: Biên dịch lại với -Xóa: không dùng nữa để biết chi tiết. Lưu ý: Một số tệp đầu vào sử dụng các hoạt động không được kiểm tra hoặc không an toàn. Lưu ý: Biên dịch lại với -Xlint: không được chọn để biết chi tiết. 2 lỗi

FAILURE: Xây dựng không thành công với ngoại lệ.

  • Điều gì đã xảy ra: Thực hiện không thành công cho công việc ': compileDebugJavaWithJavac'.

    Compilation failed; see the compiler error output for details.

  • Thử: Chạy bằng tùy chọn --stacktrace để nhận dấu vết ngăn xếp. Chạy với tùy chọn --info hoặc - debug để có thêm đầu ra nhật ký.

+1

bạn đã cố gắng loại bỏ và tái thêm nền tảng Android một lần trước khi xây dựng nó? Hy vọng rằng cần giải quyết vấn đề – Gandhi

+0

Nó không hoạt động. – user2934433

Trả lời

31

Chúng tôi đã giải quyết vấn đề này bằng cách buộc cài đặt phiên bản 1.1.0.

Dưới đây là các lệnh chúng tôi chạy từ CLI:

cordova plugin remove cordova-plugin-compat --force 
cordova plugin add [email protected] 
+0

cái này là phao cứu sinh, hôm nay vẫn là –

+0

cái này cũng làm việc cho tôi. Nhưng tôi đang sử dụng các công cụ cordova 2015 của studio trực quan. Tôi đã phải trải qua quá trình khó khăn để xóa và thêm các plugin này. Tôi đã viết một bài đăng trên blog này trên blog của tôi. Vui lòng theo liên kết dưới đây. http://guntucomputerhacks.blogspot.com.au/2017/04/cordova-camera-plugin-version-240.html –

+0

Nếu bạn đang sử dụng "Visual Studio Tools cho Apache Cordova", bạn có thể cần phải chạy các lệnh trên trong "Package Manager Console" và nếu bạn nhận được một lỗi nói "Thư mục làm việc hiện tại không phải là một dự án dựa trên Cordova" thì bạn chỉ cần thay đổi thư mục làm việc hiện tại của bạn bằng cách sử dụng lệnh DOS. Trong trường hợp của tôi, tôi chạy DIR để tìm ra cái nào là thư mục làm việc hiện tại của mình và sau đó tôi chạy CD App để chuyển đến thư mục dự án dựa trên Cordova. Sau đó, giải pháp được liệt kê trong câu trả lời này hoạt động hoàn toàn tốt mà không có lỗi. –

3

Bạn nên nâng cấp cordova-plugin-camera lên phiên bản 1.1

+0

Tôi đang cố gắng tải phiên bản plugin mới nhất không muốn hạ cấp phiên bản – user2934433

20

Tôi chạy vào cùng một vấn đề ngày hôm nay. Tôi đã khắc phục sự cố bằng cách cài đặt lại plugin cordova-plugin-compat. Do các phụ thuộc tôi đã sử dụng --force.

cordova plugin remove cordova-plugin-compat --force 
cordova plugin add cordova-plugin-compat 
+0

bạn có thể cung cấp cho tôi phiên bản plugin bạn đang sử dụng không. – user2934433

+0

thực tiễn tốt là luôn cập nhật tất cả các plugin và các công cụ SKD quá –

+0

Tôi đã cài đặt plugin máy ảnh v2.4.0, sau đó các bản dựng của tôi không thành công. Đáng buồn thay, quá trình trên không thành công đối với tôi (khi tôi đã làm như trên, sau đó tôi được nhắc cài đặt bản cập nhật cordova). Khi tôi xóa plugin camera 2.4.0, bản dựng của tôi sẽ hoạt động trở lại. Tôi sẽ tìm kiếm để xem có đề xuất/sửa chữa nào khác không. – Mark

2

Tôi gặp lỗi chính xác. Điều này thực sự gây ra bởi một phiên bản cũ của plugin cordova-plugin-compat (1.0), bằng cách nâng cấp lên phiên bản 1.1 (mới nhất), nó sẽ hoạt động.

Đây là những gì tôi đã làm,

  1. Remove tất cả các nền tảng

    nền tảng cordova loại bỏ android

    nền tảng cordova loại bỏ ios

  2. Remove Plugin cũ và thêm mới

    cordova plugin xóa cordov một plugin compat

    cordova cắm thêm cordova-plugin-compat

  3. Thêm tất cả các nền tảng lại

    nền tảng cordova thêm android

    nền tảng cordova thêm ios

  4. Re-biên dịch và mọi thứ đều hoạt động!

0

Tôi đã thực hiện thay đổi đối với phương pháp dưới đây.

// intiatiate you action accordingly 
if (action.equals("takePicture")) { 
      this.srcType = CAMERA; 
      this.destType = FILE_URI; 
      this.saveToPhotoAlbum = false; 
      this.targetHeight = 0; 
      this.targetWidth = 0; 
      this.encodingType = JPEG; 
      this.mediaType = PICTURE; 
      this.mQuality = 50; 

      // 
      this.destType = args.getInt(1); 
      this.srcType = args.getInt(2); 
      this.mQuality = args.getInt(0); 
      this.targetWidth = args.getInt(3); 
      this.targetHeight = args.getInt(4); 
      this.encodingType = args.getInt(5); 
      this.mediaType = args.getInt(6); 
      this.allowEdit = args.getBoolean(7); 
      this.correctOrientation = args.getBoolean(8); 
      this.saveToPhotoAlbum = args.getBoolean(9); 

      // If the user specifies a 0 or smaller width/height 
      // make it -1 so later comparisons succeed 
      if (this.targetWidth < 1) { 
       this.targetWidth = -1; 
      } 
      if (this.targetHeight < 1) { 
       this.targetHeight = -1; 
      } 

       if (this.targetHeight == -1 && this.targetWidth == -1 && this.mQuality == 100 && 
        !this.correctOrientation && this.encodingType == PNG && this.srcType == CAMERA) { 
       this.encodingType = JPEG; 
      } 

      try { 
       if (this.srcType == CAMERA) { 
        this.callTakePicture(destType, encodingType); 
       } 
       else if ((this.srcType == PHOTOLIBRARY) || (this.srcType == SAVEDPHOTOALBUM)) { 
        // FIXME: Stop always requesting the permission 
        if(!PermissionHelper.hasPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE)) { 
         PermissionHelper.requestPermission(this, SAVE_TO_ALBUM_SEC, Manifest.permission.READ_EXTERNAL_STORAGE); 
        } else { 
         this.getImage(this.srcType, destType, encodingType); 
        } 
       } 
      } 
      catch (IllegalArgumentException e) 
      { 
       callbackContext.error("Illegal Argument Exception"); 
       PluginResult r = new PluginResult(PluginResult.Status.ERROR); 
       callbackContext.sendPluginResult(r); 
       return true; 
      } 

      PluginResult r = new PluginResult(PluginResult.Status.NO_RESULT); 
      r.setKeepCallback(true); 
      callbackContext.sendPluginResult(r); 

      return true; 
     } 
     return false; 
    } 
2

Tôi cũng gặp lỗi từ plugin máy ảnh 2.3.1. Đó là vì sự phụ thuộc vào công cụ cordova-plugin-compat để có được id ứng dụng. Loại bỏ cordova-plugin-compat và cài đặt 1.1.0, không hoạt động đối với tôi.

Để sửa lỗi này loại bỏ mã này từ "src/android/CameraLauncher.java":

140  -  this.applicationId = (String) BuildHelper.getBuildConfigValue(cordova.getActivity(), "APPLICATION_ID"); 
141  -  this.applicationId = preferences.getString("applicationId", this.applicationId); 

và thêm:

140  +  this.applicationId = cordova.getActivity().getPackageName(); 

enter image description here

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