কীভাবে আমি অ্যানড্রয়েড স্টুডিওতে অ্যাডেল ফাইল যুক্ত করতে পারি (অ্যাপ্লিকেশন বিলিংয়ের উদাহরণ থেকে)


136

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

আমার মূল সমস্যাটি হ'ল প্রকল্প এবং এইডেল ফাইলটি সংকলন করা (আমার ধারণা আপনি সকলেই এই ফাইলটি ব্যবহার করেন )

আমি এই ত্রুটি বার্তাটি পেয়েছি:

Gradle: error: cannot find symbol class IInAppBillingService
Gradle: error: package IInAppBillingService does not exist

সুতরাং, কিছু টিউটোরিয়াল অনুসরণ করে, আমি এই ফাইলটি com.mypackage.billing থেকে src / main / امدادl এ স্থানান্তর করি ( এই রেফারেন্সটি দেখুন )

তবে যত তাড়াতাড়ি, আমি এটি করার সাথে সাথে আমি এই বার্তাটি পেয়েছি:

গ্রেডল: কার্য সম্পাদনের জন্য ব্যর্থ হয়েছে ': xxxxxxxxxxxxx: compileDebugAidl'।

কমান্ড চালাতে ব্যর্থ: (...) সি: \ ব্যবহারকারীগণ \ এক্সএক্সএক্সএক্সএক্স \ অ্যান্ড্রয়েড স্টুডিওপ্রজেক্টস \ এক্সএক্সএক্সএক্সএক্সএক্সপ্রজেক্ট \ এক্সএক্সএক্সএক্সএক্সএক্সএক্স \ এসসিআর \ প্রধান \ এইডেল \ IInAppBillingService.aidl: 45 ইন্টারফেস IIn অ্যাপবিলিংস সার্ভিস com \ এক্সএক্সএক্সএক্সএক্সএক্সবিএসআইএন বিলিং ervice সার্ভিস নামক একটি ফাইলে ঘোষণা করা উচিত .aidl।

বার্তাটি স্পষ্টভাবে আমি উপরে উল্লিখিত গুগল বাগ পৃষ্ঠা থেকে পোস্টের সাথে একটি বিরোধিতা।

কেউ এই এইডেল ফাইলটি কাজ করতে সফল হয়েছে এবং আমাকে সহায়তা করতে পারে?

এখানে চিত্র বর্ণনা লিখুন

কেবল অবহিত করতে, আমি অনুসরণ করা কিছু লিঙ্ক:


প্রশ্ন ... এই এইডেল ফাইলটি থাকা উচিত নয় /src/main/aidl/com/android/vending/billing?
সেলভিন

1
গ্রেডল: কার্য সম্পাদনের জন্য ব্যর্থ হয়েছে ': মাইপ্রজেক্ট: সংকলন ডেগুগএইডল'। > কমান্ড চালাতে ব্যর্থ: 45 ইন্টারফেস IInAppBillingService com \ android \ velling \ বিলিং \ IInAppBillingService.aidl নামে একটি ফাইলে ঘোষণা করা উচিত।
ওয়াজা_বি

1
কিছু আমাকে বলে যে আপনি এখনও সেটিকে ফোল্ডারে রাখছেন না যা সেলভিন এবং আমি বলছি ...?
স্যাম ডোজর

সবেমাত্র একটি নতুন স্ক্রিনশট যুক্ত করেছে, আমার মনে হয় আপনি যে ফোল্ডারটি আমাকে বলেছেন তা আমি এটিকে
রেখেছি

সেলভিন.পিএল / ট্রাইভিলড্রাইভপ্রজেক্ট.গ্র্যাড.জিপ ( লোকাল.প্রপ্রেটিজে এসডিকে ডির পরিবর্তন করুন) ... gradlew.bat assembleএবং এটি একটি কবজির মতো কাজ করে ... আপনি কি নিশ্চিত যে ফোল্ডারটি / এসসিআর / মেইন / এইডেল / কম / অ্যান্ড্রয়েড / ভেন্ডিং / বিলিং /src/main/aidl/com.android.vending.billing নয়? যেমন 0.2.1? গ্রেডেল 0.5। +?
সেলভিন

উত্তর:


162

ত্রুটির বার্তাটি যেমন বলেছে, আপনাকে IInAppBillingService.aidlএটির প্যাকেজ দ্বারা নির্ধারিত সঠিক ডিরেক্টরি স্থাপন করতে হবে (com.android.vending.billing)।

src/main/aidl/আপনার ইতিমধ্যে ফোল্ডারের মধ্যে , .aidlফাইলটি .োকান com/android/vending/billing/


5
আমি যখন এটি করি, তখন আমি পাই: গ্রেডল: ত্রুটি: প্রতীক শ্রেণি IInAppBillingService খুঁজে পাচ্ছি না
ওয়াজা_বি

9
সুতরাং এটি / এসআরসি / প্রধান / এইডেল / কম / অ্যান্ড্রয়েড / ভেন্ডিং / বিলিং এ? আপনি তৈরি করতে গ্রেড ব্যবহার করছেন? যদি তা হয় তবে গ্রেডেল পুনরায় লোড কনফিগারেশন করতে অ্যান্ড্রয়েড স্টুডিওর উপরের ডানদিকে সামান্য গ্রেডল বোতামটি চাপুন বা অ্যান্ড্রয়েড স্টুডিওটি বন্ধ / খুলুন।
স্যাম ডোজর

80
শুধু নির্মল. Src / main / এর অধীনে ডিরেক্টরি ডিরেক্টরি তৈরি করুন aid তারপরে একটি নতুন প্যাকেজ com.android.vending.billing যুক্ত করুন। তারপরে নতুন প্যাকেজে অ্যাডেল ফাইলটি অনুলিপি করুন। কোড. google.com/p/android/issues/detail?id=56755
ক্যালেল ওয়েড

2
@ কেলেল ওয়েড এটি আমার জন্য সমাধান ছিল, আপনার এটি উত্তর হিসাবে যুক্ত করা উচিত।
eski

3
যদি আপনার কাছে এসসিআর / প্রধান না থাকে তবে যে কোনও জায়গায় এইডেল ডিরেক্টরি তৈরি করুন এবং বিল্ড.gradle এ নির্দিষ্ট করুন: অ্যান্ড্রয়েড {উত্সসেটস {প্রধান {এইডেল {এসসিআরডি'র 'আসল_পথ ..'
আলেব

221

এটি উত্তর হিসাবে যুক্ত করা কারণ এটি বেশ কয়েকটি লোককে সাহায্য করবে বলে মনে হয়েছিল।

  1. 'এসসিআর / মেইন /' এর আওতায় 'এইডেল' নামে একটি নতুন ডিরেক্টরি তৈরি করুন । এটি দেখতে ' src / main / helpl ' এর মতো হওয়া উচিত ।
  2. ডিরেক্টরিতে ' src / main / امدادl ' তে একটি নতুন প্যাকেজের নাম ' com.android.vending.billing ' যুক্ত করুন
  3. আপনার এসডিকে অবস্থানটি সনাক্ত করুন এবং "এসডিকে \ অতিরিক্তগুলি \ গুগল \ প্লে_বিলিং" এ যান। এসডিকে ডিফল্ট অবস্থান হ'ল "সি: \ প্রোগ্রাম ফাইল (x86) \ অ্যান্ড্রয়েড \ অ্যান্ড্রয়েড-এসডিকে"। আপনি যদি কাস্টম এটি পরিবর্তন করে থাকেন তবে আপনাকে এসডিকে ম্যানেজারের মাধ্যমে অবস্থানটি বের করতে হবে।
  4. উপরের তৈরি প্যাকেজে 'IInAppBillingService.aidl' অনুলিপি করুন । শেষ পর্যন্ত, এটি নীচের চিত্রের মতো দেখতে হবে।

ফলাফলের স্ক্রিনশট

  1. প্রকল্পটি পুনর্নির্মাণ করুন এবং এটি ভাল হওয়া উচিত।

দ্রষ্টব্য: আপনার রেফারেন্স কাজ না করে আপনি প্রয়োজনীয় আমদানি অন্তর্ভুক্ত করেছেন তা নিশ্চিত করুন

import com.android.vending.billing.IInAppBillingService;

https://issuetracker.google.com/issues/36973270

মন্তব্য থেকে সম্পাদনা করুন

আমি এটি করার পরে, আমার কোডে IInAppBillingService এর উল্লেখগুলি এখনও ত্রুটি হিসাবে হাইলাইট করা হয়েছিল, কিন্তু অ্যাপটি পুনর্নির্মাণের পরে, শ্রেণিটি স্বীকৃত হয়েছিল


1
কেবল পরিষ্কার করে বলুন: এগুলি পুরোপুরি পড়ুন! আমি ... আবার জোর দেওয়ার জন্য করিনি: এটি একটি ভাল সংযোজন ... নতুন 'মূল / সহায়ক' ডিরেক্টরিতে কম.অ্যান্ড্রয়েড.ভেন্ডিং.বিলিং রাখুন!
ছেলে

5
আমি এটি করার পরে, আমার কোডে IInAppBillingService এর উল্লেখগুলি এখনও ত্রুটি হিসাবে হাইলাইট করা হয়েছিল, কিন্তু অ্যাপটি পুনর্নির্মাণের পরে, শ্রেণিটি স্বীকৃত হয়েছিল।
আরলোমেডিয়া

এটি কাজ করে, তবে আপনি যখন মডিউল যুক্ত করার সিদ্ধান্ত নেন তখন কেন এই সমস্ত স্বয়ংক্রিয় হয় না?
অ্যান্ড্রয়েড বিকাশকারী

পুনর্নির্মাণ প্রকল্প টিপ জন্য ধন্যবাদ। এছাড়াও ফোল্ডার এবং প্যাকেজটি একটি স্বাদে তৈরি করা যেতে পারে, এটি মূল হতে হবে না। (উদাহরণস্বরূপ যদি আপনি কেবল আপনার অ্যাপ্লিকেশনটির একটি স্বাদে অ্যাপ্লিকেশন বিলিংয়ে করেন)
মাইক ফস্কার

4
আপনার উত্তর না আসা পর্যন্ত এই সমস্যাটি সমাধান করার চেষ্টা করে 20 মিনিট সময় ব্যয় করুন। তারপরে আমি ত্রুটিটি পাওয়ার জন্য
এটিটিকে উজ্জীবিত

10

আমি এখানে দেখানো মতো একটি নতুন ফোল্ডার তৈরি না করা পর্যন্ত এখানে থাকা বাকি পোস্টগুলি আমার পক্ষে কাজ করে না ।

এখানে চিত্র বর্ণনা লিখুন


9
  • src/mainনামে পরিচিত নতুন ডিরেক্টরি তৈরি করুনaidl
  • ডিরেক্টরিতে ডান ক্লিক করুন aidl, নির্বাচন করুনnew->add package
  • প্যাকেজের নাম লিখুন com.android.vending.billing

  • কপি IInAppBillingService.aidlডিরেক্টরি থেকে Android/Sdk/extras/google/play_billingনির্দেশিকাতেApp_name/app/src/main/aidl/com/android/vending/billing

  • এখন অ্যাপ অ্যাপ্লিকেশন বিলিং কোডিং সহ এগিয়ে যান এবং ইন অ্যাপ্লিকেশন সম্পর্কিত পরিষেবাদি সংজ্ঞায়নের সময় আপনি একটি ত্রুটি পাবেন can not resolve symbol IInAppBillingXXXXXX
  • এখন Buildঅ্যান্ড্রয়েড স্টুডিও মেনু থেকে যান, ক্লিক করুন Rebuild Project। এটি IInAppBillingService.javaভিতরে ফাইল তৈরি করবে App_Name/app/build/generated/source/aidl/debug/com/android/vending/billing। এটি সমস্যার সমাধান করবে।

@MOHSENNAVABI কোন সমস্যা নেই :-)
Praveena

"IInAppBillingService.aidl" ফাইলটি অনুলিপি করার পরে, এই ফাইলটির কোনও লাইন পরিবর্তন করা দরকার? প্যাকেজের নামটি প্রতিস্থাপন করতে বলার জন্য আমি কিছু নোট দেখেছি কারণ এটি "এডেল.এক্স.এই 'শূন্য-বহির্গমন প্রস্থান 1 দিয়ে শেষ হয়েছে" এড়াতে একটি নমুনা থেকে আসছে। এটি করার জন্য নির্দিষ্ট নির্দেশাবলী কী কী?
পাবলো আলফোনসো

7

Build.gradle এ এই কোডটি যুক্ত করুন

android {
    sourceSets {
        main {
            aidl.srcDirs = ['src']
        }
    }
}

পুনর্নির্মাণ এবং সহায়তা ক্লাস আমদানি করুন


2

উপরের উত্তরগুলি ফাইলের স্থানে মনোনিবেশ করে তবে এটি ইতিমধ্যে সঠিকভাবে সেট হয়ে গেছে বলে মনে হয়। আমি এই একই সমস্যাটি অ্যান্ড্রয়েড স্টুডিওতে অনুভব করেছি, তবে তালিকাভুক্ত উত্তরগুলির মধ্যে এটির কোনও সমাধান হয়নি এবং আমি এক ঘন্টার জন্য তার বিরুদ্ধে মাথা ঠেকিয়েছি। অবশেষে, আমি বুঝতে পারি যে আমি একটি সুস্পষ্ট আমদানি মিস করছি:

 import com.android.vending.billing.IInAppBillingService;

একবার আমি যুক্ত করেছি যে এটি এই ত্রুটি বার্তাটি সমাধান করেছে।

এই আমদানির কোনও গুগল বিলিং ডক্সে উল্লেখ করা হয়নি বা আমি খুঁজে পেয়েছি এমন কোড উদাহরণগুলির মধ্যে অন্তর্ভুক্ত নেই। অভিজ্ঞ জাভা বিকাশকারীদের কাছে এটি স্পষ্টরূপে প্রকাশিত হতে পারে, তবে প্রাথমিকভাবে তাদের প্রথম প্রকল্পটি শিখার চেষ্টা করা সূচনাবিদদের অবশ্যই এটি পরিষ্কারভাবে নির্দেশ করতে হবে pointed


1

আমাদের যোগ করা প্রয়োজন

  1. ফোল্ডার তৈরি করুন - এসসিআর / প্রধান / এইডেল / প্যাকেজ নাম এবং এর অধীনে এইডেল ফাইল রাখুন।

  2. এইডিল ফাইলটিতে - প্যাকেজের নাম উল্লেখ করুন। প্যাকেজ প্যাকেজ নাম

এখন প্রকল্পটি পরিষ্কার করুন, প্রকল্পটি পুনর্নির্মাণ করুন - আমরা অ্যাপ্লিকেশন \ বিল্ড \ জেনারেট \ উত্স l সহায়তাকারী \ ডিবাগ \ প্যাকেজ নাম \ ইউরেডল.জাভা তৈরি হওয়া এইডেলের জন্য সংশ্লিষ্ট জাভা ফাইলটি করতে পারি


1

আমি জানি এটি খুব সহজ শোনায় তবে আমি সমস্ত ফোল্ডারের গুগল নমুনা থেকে পেস্টটি অনুলিপি করি

https://github.com/googlesamples/android-play-billing/tree/master/TrivialDrive/app/src/main

aidl / কম / অ্যান্ড্রয়েড / ভেন্ডিং / বিলিং

প্রকল্প সহায়তায় অনুলিপি করা হয়েছে (আমি অ্যান্ড্রয়েড স্টুডিওতে প্রকল্পের দৃশ্য সেট করেছিলাম)

এবং এরপরে আমি প্রকল্পটি পরিষ্কার ও পুনর্নির্মাণ করেছি এবং এটির একটি উল্লেখ পাওয়া গেছে।


0

আমি প্রতিটি সমাধান চেষ্টা করেছি, তবে সমস্যাটি হ'ল অ্যান্ড্রয়েড স্টুডিওটি কোনও আপাত কারণে, মডিউলের একটি পৃথক বিল্ড ধরণের যেটি এইডএল প্যাকেজগুলি ধারণ করে সেটিংস দ্বারা উল্লিখিত তুলনায় সংকলন করেছিল। থেকে ডিবাগ বিজ্ঞপ্তিতে , তাই অন্যান্য মডিউল AIDL pkg দেখতে পাননি। ডিবাগ থেকে রিলিজ স্যুইচিং এবং ফিরে ফিরে, আমার সমস্যার সমাধান।


0

অ্যান্ড্রয়েড স্টুডিও পুনরায় চালু করা আমার পক্ষে কাজ করেছিল

একটি দ্বিতীয় নির্বোধ জিনিস যা আমাকে কিছুটা সময় নিয়েছিল। অ্যান্ড্রয়েড স্টুডিওতে ফাইলটি তৈরি করার অনুমতি দেওয়ার জন্য আমি কোডটি ফেলে দিলাম, তবে সে আমার।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.