2017-10-30 46 views
9

Dưới đây là Ionic Thông tin của tôiKhông thể chạy ứng dụng Ionic sau khi cập nhật cho Android Studio 3.0

cli packages: (/Users/billb/dev/customer-mkt-app/node_modules)

@ionic/cli-utils : 1.15.2 
ionic (Ionic CLI) : 3.15.2 

gói toàn cầu:

cordova (Cordova CLI) : 7.0.1 

gói địa phương:

@ionic/app-scripts : 3.0.1 
Cordova Platforms : android 6.2.3 ios 4.4.0 
Ionic Framework : ionic-angular 3.3.0 

hệ thống:

Android SDK Tools : 26.1.1 
ios-deploy  : 1.9.2 
Node    : v6.11.5 
npm    : 3.10.10 
OS    : macOS Sierra 
Xcode    : Xcode 9.0.1 Build version 9A1004 
Biến

Môi trường:

ANDROID_HOME : /Users/billb/Library/Android/sdk 

Misc:

backend : pro 

tôi thành công có thể xây dựng các ứng dụng. Khi tôi cố gắng mở nó trong Android Studio, tôi nhận được một số lỗi, chủ yếu là xung quanh một sự thất bại đồng bộ gradle. Dưới đây là 5 lỗi trong bảng điều khiển Tin nhắn.

Unable to resolve dependency for ':@debug/compileClasspath': Could not resolve project :CordovaLib. Could not resolve project :CordovaLib.

Required by: project :

Project : declares a dependency from configuration 'debugCompile' to configuration 'debug' which is not declared in the descriptor for project >:CordovaLib.


Unable to resolve dependency for ':@debugAndroidTest/compileClasspath': Could not resolve project :CordovaLib. Could not resolve project :CordovaLib.

Required by: project :

Project : declares a dependency from configuration 'debugCompile' to configuration 'debug' which is not declared in the descriptor for project >:CordovaLib.


Unable to resolve dependency for ':@debugUnitTest/compileClasspath': Could not resolve project :CordovaLib. Could not resolve project :CordovaLib.

Required by: project :

Project : declares a dependency from configuration 'debugCompile' to configuration 'debug' which is not declared in the descriptor for project > :CordovaLib.


Unable to resolve dependency for ':@release/compileClasspath': Could not resolve project :CordovaLib.

Could not resolve project :CordovaLib. Required by: project :

Project : declares a dependency from configuration 'releaseCompile' to configuration 'release' which is not declared in the descriptor for project :CordovaLib.


Unable to resolve dependency for ':@releaseUnitTest/compileClasspath': Could not resolve project :CordovaLib.

Could not resolve project :CordovaLib. Required by: project :

Project : declares a dependency from configuration 'releaseCompile' to configuration 'release' which is not declared in the descriptor for project :CordovaLib.

Tôi thực sự không biết điều này có nghĩa và G oogle đã không bật lên bất kỳ điều gì giúp đỡ thực sự. Tôi cần làm gì ở đây?

Lưu ý: đã phát hiện ra điều này sau khi đăng bài này. Chuyển tiếp nó ở đây trong trường hợp nó sẽ giúp người khác.

Don't upgrade to Android Studio 3

+0

Plugin Gradle của Android 3 có một số hồi quy nên tôi khuyên bạn nên sử dụng Android Studio 3 nhưng không nâng cấp plugin Gradle trong dự án Cordova của bạn. –

+0

Tôi đã cập nhật mọi thứ. Tôi đã học bài học của tôi. hãy kiểm tra tất cả các nguồn trước khi cập nhật mọi thứ. – Bill

Trả lời

9

Đây là một vấn đề được biết bạn có thể tìm jira liên quan vấn đề here và vấn đề cơ bản là this one và cả hai đều là "cơ bản dở dang". Và đã có một pull request on github mà bạn có thể thử nhưng tôi không thể hứa với bạn rằng nó đã là một phiên bản làm việc. Bạn có thể cài đặt nó như thế này nếu bạn muốn thử rằng:

cordova platform add https://github.com/infil00p/cordova-android.git#StudioThreeFix 
0

Khi bạn đang phải đối mặt vấn đề kiểu này, bạn chỉ cần bỏ lớp phiên bản gradle đến 2.2.3 và tái đồng bộ dự án nó sẽ công việc.

45

tôi nhận xét các dòng dưới đây trong file build.gradle:

//debugCompile project(path: 'CordovaLib', configuration: 'debug') 

//releaseCompile project(path: 'CordovaLib', configuration: 'release') 

và nói thêm:

compile project(':CordovaLib') 

này đã làm việc cho tôi.

+0

Điều này cũng phù hợp với tôi. –

+0

Thêm tài khoản tại đây. Cảm ơn! –

+0

Cảm ơn. Điều này cũng phù hợp với tôi.(y) – khatz0406

3

Thêm tùy chọn này vào phụ thuộc .gradle của Android. Đó là tất cả.

compile project(':CordovaLib') 

Ví dụ:

dependencies { 
    compile fileTree(dir: 'libs', include: '*.jar') 
    // SUB-PROJECT DEPENDENCIES START 
    //debugCompile(project(path: "CordovaLib", configuration: "debug")) 
    //releaseCompile(project(path: "CordovaLib", configuration: "release")) 
    compile project(':CordovaLib') 
    compile "com.android.support:support-v4:24.1.1+" 
    compile "com.google.android.gms:play-services-analytics:+" 
    // SUB-PROJECT DEPENDENCIES END 
} 
1

Vì vậy, tôi chỉ cần bỏ ra hai ngày chiến đấu này và đi lên với một giải pháp bán thủ công.

Vì Gradle đã quyết định nhổ bỏ định dạng phụ thuộc của nó mà không có thời gian gia hạn để di chuyển, chúng tôi buộc phải làm những việc như thế này.

(Hướng dẫn dưới Linux. Đối với Windows bạn cần một số 7zip hay cái gì tương tự cho bước cuối cùng)

Từ thư mục chính người dùng của bạn đi đến .cordova/lib/npm_cache/cordova-android.
Trong đó, phải có một hoặc nhiều thư mục có số phiên bản.
Thông thường chỉ có phiên bản mới nhất được chạy.
Mở.
Xóa thư mục package, nhưng không phải tệp package.tgz.
Mở gói tệp package.tgz, sau đó xóa tệp hoặc di chuyển nó đến vị trí sao lưu. (Có một số tập tin thêm được tạo ra mà chúng ta không muốn tái gói sau)
Chỉnh sửa các tập tin package/bin/templates/cordova/lib/plugin-build.gradle và bên dependencies loại bỏ những dòng này

debugCompile project(path: ":CordovaLib", configuration: "debug") 
releaseCompile project(path: ":CordovaLib", configuration: "release") 

Thay thế chúng với

implementation project(path: ":CordovaLib") 

Lưu trữ các thư mục gói. Trong Linux, lệnh ngắn là tar czf package.tgz package. Trên Windows, bạn phải tạo một kho lưu trữ .tar.gz với 7zip và đổi tên thành .tgz.

Sau đó, trong việc điều hành một cordova prepare trong một kho lưu trữ sạch mà làm việc với các phiên bản cũ sẽ hoạt động trở lại, trừ trường hợp một số các plugin rõ ràng sử dụng định dạng khai cũ và cần phải được cập nhật (example)

4

Nếu bạn nhận được loại lỗi trong Android Studio 3.0.1:

Unable to resolve dependency for :@debug/compileClasspath’: Could not resolve project :CordovaLib. 

đến build.gradle tập tin -> tìm phụ thuộc và thay đổi nó như thế này

dependencies { 
    compile fileTree(dir: 'libs', include: '*.jar') 
    // SUB-PROJECT DEPENDENCIES START 
    //debugCompile(project(path: "CordovaLib", configuration: "debug")) 
    //releaseCompile(project(path: "CordovaLib", configuration: "release")) 
    compile project(':CordovaLib') 
    // SUB-PROJECT DEPENDENCIES END 
} 
0

Đây là gradle.build cấu hình của tôi:

dependencies { 
    implementation fileTree(dir: 'libs', include: '*.jar') 
    // SUB-PROJECT DEPENDENCIES START 
    implementation(project(path: "CordovaLib")) 
    implementation(project(path: "cordova-social-ok:odnoklassniki-android-sdk")){ 
     exclude module:("CordovaLib") 
    } 
    implementation(project(path: "cordova-social-vk:vksdk_library")){ 
     exclude module:("CordovaLib") 
    } 
    compile "com.onesignal:OneSignal:3.7.1" 
    compile "com.facebook.android:facebook-android-sdk:4.+" 
    // SUB-PROJECT DEPENDENCIES END 
} 

Nhưng tôi vẫn nhận được lỗi này:

* What went wrong: 
Could not determine the dependencies of task ':cordova-social-ok:odnoklassniki-android-sdk:compileReleaseAidl'. 
> Could not resolve all task dependencies for configuration ':cordova-social-ok:odnoklassniki-android-sdk:releaseCompileClasspath'. 
    > Could not resolve project :CordovaLib. 
    Required by: 
     project :cordova-social-ok:odnoklassniki-android-sdk 
     > Project :cordova-social-ok:odnoklassniki-android-sdk declares a dependency from configuration 'releaseCompile' to configuration 'release' which is not declared in the descriptor for project :CordovaLib. 

Ngoài ra, đây là một dự án Cordova, vì vậy gradle.build tập tin được autogenerated vì vậy tôi không thể sửa đổi nó.

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