在有人問之前,我已經閱讀了所有這些問題,但沒有一個能解決我的問題:1、2、3、4、5、6。
我目前正在學習 Android 應用程式開發,并且一直在學習 Android開發者網站上的第一個教程。我使用“基本活動”模板(按照說明)創建了我的專案。
在上面鏈接頁面的第 5 步中,它說通過執行以下操作來啟用安全引數:
打開Gradle Scripts > build.gradle (Module: My First App) 找到該
dependencies部分中的buildscript部分,并在其他類路徑條目之后添加以下行:
def nav_version = "2.3.0-alpha02"
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version"打開Gradle Scripts > build.gradle (Module: app) 在以 apply plugin 開頭的其他行下方添加一行以啟用 SafeArgs:
apply plugin: 'androidx.navigation.safeargs.kotlin'Android Studio 應顯示有關 Gradle 檔案正在更改的訊息。單擊右側的立即同步。片刻之后,Android Studio 應該會在 Sync 選項卡中顯示一條訊息,表明它已成功。
選擇構建 > 制作專案。這應該重建所有內容,以便 Android Studio 可以找到 FirstFragmentDirections。
不幸的是,我的 Android Studio 版本(見下文)中的“基本活動”模板的結構似乎不支持說明中的更改。
Android Studio Dolphin | 2021.3.1 Patch 1
Build #AI-213.7172.25.2113.9123335, built on September 30, 2022
Runtime version: 11.0.13 0-b1751.21-8125866 amd64
首先,它說“在 buildscript 部分中找到依賴項部分”。在我的build.gradle (:app)檔案中(我什至不確定這是否是正確的檔案),只有一個包含條目的頂級依賴項部分implementation。添加classpath條目似乎不正確。
接下來,它說要將該apply plugin條目添加到我的(Module: app)檔案中“就在以“開頭的其他行的下方apply plugin”。不存在這樣的行,這讓人懷疑該教程已過時。
經過一番搜索,我得出結論,我需要以不同的方式添加安全引數。在我的build.gradle專案檔案中,我讓它看起來像這樣(這是完整的檔案):
plugins {
id 'com.android.application' version '7.3.1' apply false
id 'com.android.library' version '7.3.1' apply false
id 'org.jetbrains.kotlin.android' version '1.7.10' apply false
id 'androidx.navigation.safeargs.kotlin' version '2.5.3' apply false // I added this
}
我的模塊檔案的頂部build.gradle如下所示:
plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
id "androidx.navigation.safeargs.kotlin" // I added this
}
檔案沒有其他更改。
同步作業正常,但是當我嘗試重建時遇到問題(即使我先清理)。在 checkDebugDuplicateClasses 檢查失敗后,我發現我總是收到以下錯誤:
Duplicate class javax.activation.ActivationDataFlavor found in modules jakarta.activation-api-1.2.1 (jakarta.activation:jakarta.activation-api:1.2.1) and javax.activation-1.2.0 (com.sun.activation:javax.activation:1.2.0)
Duplicate class javax.activation.CommandInfo found in modules jakarta.activation-api-1.2.1 (jakarta.activation:jakarta.activation-api:1.2.1) and javax.activation-1.2.0 (com.sun.activation:javax.activation:1.2.0)
Duplicate class javax.activation.CommandInfo$Beans found in modules jakarta.activation-api-1.2.1 (jakarta.activation:jakarta.activation-api:1.2.1) and javax.activation-1.2.0 (com.sun.activation:javax.activation:1.2.0)
[...]
Duplicate class org.xmlpull.v1.XmlPullParser found in the following modules: kxml2-2.3.0 (net.sf.kxml:kxml2:2.3.0), xmlpull-1.1.3.1 (xmlpull:xmlpull:1.1.3.1) and xpp3-1.1.4c (xpp3:xpp3:1.1.4c)
Duplicate class org.xmlpull.v1.XmlPullParserException found in the following modules: kxml2-2.3.0 (net.sf.kxml:kxml2:2.3.0), xmlpull-1.1.3.1 (xmlpull:xmlpull:1.1.3.1) and xpp3-1.1.4c (xpp3:xpp3:1.1.4c)
Duplicate class org.xmlpull.v1.XmlPullParserFactory found in the following modules: kxml2-2.3.0 (net.sf.kxml:kxml2:2.3.0), xmlpull-1.1.3.1 (xmlpull:xmlpull:1.1.3.1) and xpp3-1.1.4c (xpp3:xpp3:1.1.4c)
Duplicate class org.xmlpull.v1.XmlSerializer found in the following modules: kxml2-2.3.0 (net.sf.kxml:kxml2:2.3.0), xmlpull-1.1.3.1 (xmlpull:xmlpull:1.1.3.1) and xpp3-1.1.4c (xpp3:xpp3:1.1.4c)
Go to the documentation to learn how to Fix dependency resolution errors.
目前還不清楚從這里需要做什么。我根本無法在模擬器中運行該應用程式,因為構建完全失敗。任何建議,將不勝感激。
uj5u.com熱心網友回復:
我不知道我到底是什么時候這樣做的,但是我對我的build.gradle應用程式檔案的末尾進行了更改,所以它看起來如下所示。
dependencies {
implementation 'androidx.core:core-ktx:1.7.0'
implementation 'androidx.appcompat:appcompat:1.5.1'
implementation 'com.google.android.material:material:1.7.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
implementation 'androidx.navigation:navigation-fragment-ktx:2.5.2'
implementation 'androidx.navigation:navigation-ui-ktx:2.5.2'
implementation 'androidx.navigation:navigation-safe-args-gradle-plugin:2.5.3' // <--- this line
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
}
我在這里指出的那條線是罪魁禍首。這一定是導致某處沿線某處翻倍。洗掉此行應該可以解決問題。
我發現這個github repo 很有用(鏈接到互聯網檔案,相關檔案已存檔)。build.gradle和app/build.gradle檔案是您應該查看的位置。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/526360.html
標籤:安卓科特林毕业典礼
上一篇:無法在Flutter專案中訪問類'com.google.common.util.concurrent.ListenableFuture'
