หลังจากอัปเดต Android Studio เป็น 1.0 ฉันเห็นข้อผิดพลาดนี้:
ข้อผิดพลาด: โปรเจ็กต์ไลบรารีไม่สามารถตั้งค่า applicationId applicationId ถูกตั้งค่า เป็น 'com.super.app' ในการกำหนดค่าเริ่มต้น
ฉันอัปเดตปลั๊กอิน Gradle ตามที่แนะนำ แต่ไม่เข้าใจวิธีแก้ไข
หลังจากอัปเดต Android Studio เป็น 1.0 ฉันเห็นข้อผิดพลาดนี้:
ข้อผิดพลาด: โปรเจ็กต์ไลบรารีไม่สามารถตั้งค่า applicationId applicationId ถูกตั้งค่า เป็น 'com.super.app' ในการกำหนดค่าเริ่มต้น
ฉันอัปเดตปลั๊กอิน Gradle ตามที่แนะนำ แต่ไม่เข้าใจวิธีแก้ไข
คำตอบ:
จากข้อมูลนี้:
ApplicationId ในโครงการไลบรารี
คุณไม่สามารถใช้ applicationId เพื่อปรับแต่งแพ็คเกจของโปรเจ็กต์ไลบรารี ชื่อแพ็กเกจต้องได้รับการแก้ไขในไลบรารีโปรเจ็กต์ (และระบุเป็น packageName ในไฟล์ Manifest) ปลั๊กอิน Gradle ไม่ได้บังคับใช้ข้อ จำกัด นี้ก่อนหน้านี้
การลบตัวแปร applicationId ออกจากbuild.gradle
ไฟล์ของไลบรารีควรแก้ไขปัญหาได้
ขอบคุณ Joel สำหรับคำตอบที่ถูกต้อง:ฉันต้องการลบเพียง 1 บรรทัดจาก.gradle
ไฟล์te :
defaultConfig {
applicationId "com.super.app" <---- remove this line
minSdkVersion 15
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
กลายเป็น
defaultConfig {
minSdkVersion 15
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
และ AndroidManifest.xml ของฉัน
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.super.app">
...
นี่เป็นวิธีแก้ปัญหาที่เหมาะสมหากคุณไม่จำเป็นต้องเปลี่ยนชื่อแพ็กเกจของแอปของคุณ ในการเปลี่ยนชื่อคุณต้องใช้ "รสชาติ":
android {
...
productFlavors {
flavor1 {
applicationId 'com.super.superapp'
}
}
ในกรณีที่มันช่วยบางคน:
เมื่อฉันนำเข้าโปรเจ็กต์ eclipse ไปยัง android studio ฉันได้รับข้อผิดพลาด ::
"ข้อผิดพลาด: แอปพลิเคชันและรหัสแอปพลิเคชันทดสอบต้องไม่เหมือนกัน"
แม้ว่าจะแปลก แต่ฉันมองเข้าไปใน build.gradle และพบตัวยึดสองตัวหนึ่งตัวสำหรับแอปพลิเคชันและอื่น ๆ สำหรับการทดสอบแอปพลิเคชัน
ฉันลบ testApplicationId จากที่แนะนำในโพสต์นี้และสิ่งนี้ช่วยฉันแก้ปัญหาได้
หมายเหตุ: คำอธิบายนี้ไม่เกี่ยวข้องกับข้อผิดพลาดที่โพสต์ในคำถามนี้ แต่อาจช่วยผู้ที่พบข้อผิดพลาดที่คล้ายกัน
คุณไม่สามารถกำหนด applicationId สำหรับ lib ของคุณ แต่ในกรณีที่คุณต้องการใช้ตัวระบุในไฟล์บิลด์ของคุณซึ่งจะให้ชื่อแพ็กเกจไลบรารีของคุณคุณสามารถกำหนดตัวแปรสำหรับโมดูลจากนั้นใช้ค่าตามต้องการ
เช่น: build.gradle ของห้องสมุด
apply plugin: 'com.android.library'
def libraryGroupId = 'com.google.example'
def libraryArtifactId = project.getName()
def libraryVersion = '1.1'
นอกจากนี้คุณสามารถใช้ค่าด้านล่างได้ตามต้องการในไฟล์บิลด์ของคุณใน lib
android {
compileSdkVersion 28
defaultConfig {
minSdkVersion 21
targetSdkVersion 28
versionCode 1
versionName "$libraryVersion"
resValue "string", "Library", libraryGroupId"
}
}