অ্যান্ড্রয়েড স্টুডিও 1.0 এবং ত্রুটি "লাইব্রেরি প্রকল্পগুলি অ্যাপ্লিকেশন আইডি সেট করতে পারে না"


109

অ্যান্ড্রয়েড স্টুডিওটি 1.0 এ আপডেট করার পরে, আমি এই ত্রুটিটি দেখছি:

ত্রুটি: গ্রন্থাগার প্রকল্পগুলি অ্যাপ্লিকেশন সেট করতে পারে না d অ্যাপ্লিকেশনআইডি ডিফল্ট কনফিগারেশনে 'com.super.app' এ সেট করা আছে।

আমি প্রস্তাবিত গ্র্যাডল প্লাগইন আপডেট করেছি তবে কীভাবে এটি ঠিক করব তা আমি বুঝতে পারি নি।

উত্তর:


208

এই তথ্যের ভিত্তিতে :

গ্রন্থাগার প্রকল্পগুলিতে অ্যাপ্লিকেশনআইড

আপনি গ্রন্থাগার প্রকল্পের প্যাকেজটি কাস্টমাইজ করতে অ্যাপ্লিকেশনআইডি ব্যবহার করতে পারবেন না। প্যাকেজের নামটি গ্রন্থাগার প্রকল্পগুলিতে স্থির করতে হবে (এবং ম্যানিফেস্টে প্যাকেজ নাম হিসাবে নির্দিষ্ট করা হয়েছে)। গ্রেডল প্লাগইনটি এই বিধিনিষেধটি আগে প্রয়োগ করে না।

লাইব্রেরির build.gradleফাইল থেকে অ্যাপ্লিকেশন আইড ভেরিয়েবল মুছে ফেলা সমস্যার সমাধান করা উচিত।


ধন্যবাদ, আপনি আমাকে সঠিক দিকে চালিত করেছেন। আমি একটি উত্তর যুক্ত করেছি যা আমার "স্বাদ" সমস্যাটি ব্যাখ্যা করে।
Seraphim এর

1
@ জোয়েল: আমি মডিউলটিকে একটি লাইব্রেরিতে রূপান্তরিত করেছি, তবে অপসারণের জন্য আমি অ্যাপ্লিকেশন আইডিটি খুঁজে পাচ্ছি না। অ্যাপ্লিকেশনআইডি বিল্ড.ড্রেডল ফাইলটিতে নেই। আপনি কি আমাকে বলতে পারবেন আমি অ্যান্ড্রয়েড স্টুডিওতে কোথায় খুঁজে পেতে পারি 1.0.1
কুমার

যদিও এই লিঙ্কটি প্রশ্নের উত্তর দিতে পারে, উত্তরের প্রয়োজনীয় অংশগুলি এখানে অন্তর্ভুক্ত করা এবং রেফারেন্সের জন্য লিঙ্কটি সরবরাহ করা ভাল। লিঙ্কযুক্ত উত্তরগুলি যদি লিঙ্কযুক্ত পৃষ্ঠা পরিবর্তন করে তবে অবৈধ হয়ে উঠতে পারে
নেরড্রয়েড

62

জোয়েলকে তার সঠিক উত্তরের জন্য ধন্যবাদ: আমাকে টি .gradleফাইল থেকে কেবল 1 লাইন অপসারণ করতে হবে:

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"
    }

এবং আমার AndroidManLive.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'
       }
   }

খুব খারাপ দু'টি উত্তর চেক করা যায় না কারণ আপনি জোলের থাকা উচিত এমন একটি উদাহরণ অন্তর্ভুক্ত করেছেন।
অ্যান্ড্রয়েড কোডার

1
আমি যদি অ্যাপ্লিকেশন আইডি লাইনটি সরিয়ে ফেলি তবে আমি কী এতে প্লে স্টোর প্রকাশ করতে পারি?
গুরকান স্ট্যাক

1
@ গুরকানস্ট্যাক যদি আপনি গ্রেডল ফাইলটিতে লাইনটি সরিয়ে থাকেন তবে অ্যান্ড্রয়েড ম্যানিফেস্ট.এক্সএমএল "প্যাকেজ" এ সংজ্ঞায়িত নাম স্থানটি প্রকাশের জন্য ব্যবহৃত হবে।
সেরফিম এর

1

কিছুটা হলেও এটি সহায়তা করে:

যখন আমি অ্যাল্রয়েড স্টুডিওতে একটি গ্রিপস প্রকল্পটি আমদানি করি তখন আমার একটি ত্রুটি হয়েছিল:

"ত্রুটি: অ্যাপ্লিকেশন এবং পরীক্ষার অ্যাপ্লিকেশন আইডি এক হতে পারে না"

যদিও অদ্ভুত, তবে আমি বিল্ড.gradleটি দেখেছি এবং দুটি স্থানধারককে পেয়েছি, একটি অ্যাপ্লিকেশনটির জন্য এবং অন্যটি টেস্টপ্লিকেশনের জন্য।

আমি এই পোস্টে প্রস্তাবিত হিসাবে টেস্ট অ্যাপ্লিকেশনআইডিকে অপসারণ করেছি এবং এটি আমাকে সমস্যা সমাধানে সহায়তা করেছে।

দ্রষ্টব্য: এই ব্যাখ্যাটি এই প্রশ্নটিতে পোস্ট করা ত্রুটির সাথে সম্পর্কিত নয়, তবে একইরকম ত্রুটি পাওয়া কাউকে সহায়তা করতে পারে।


0

আপনি আপনার lib এর জন্য অ্যাপ্লিকেশন সংজ্ঞা দিতে পারবেন না। তবে যদি আপনি আপনার বিল্ড ফাইলটিতে একটি শনাক্তকারী ব্যবহার করতে চান যা আপনাকে, আপনার লাইব্রেরি প্যাকেজের নাম দেয়, আপনি মডিউলটির জন্য একটি ভেরিয়েবল নির্ধারণ করতে পারেন এবং তারপরে প্রয়োজনীয় মানটি ব্যবহার করতে পারেন।

যেমন: লাইব্রেরির বিল্ড.gradle rad

apply plugin: 'com.android.library'

def libraryGroupId = 'com.google.example'
def libraryArtifactId = project.getName()
def libraryVersion = '1.1'

এছাড়াও, আপনি নিজের বিল্ড ফাইলটিতে প্রয়োজনীয় হিসাবে নীচের মানটি ব্যবহার করতে পারেন।

android {
compileSdkVersion 28

defaultConfig {
    minSdkVersion 21
    targetSdkVersion 28
    versionCode 1
    versionName "$libraryVersion"
    resValue "string", "Library", libraryGroupId"
 }
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.