অ্যান্ড্রয়েডের জন্য Eclipse এ অ্যাডমব ত্রুটি: কনফিগারচেনজ


131

গ্রহনটি আমাকে অ্যান্ড্রয়েড: কনফিগারেশন লাইনে আমার অ্যান্ড্রয়েড ম্যানিফেস্ট.এক্সএমএলে একটি ত্রুটি দিচ্ছে:

<activity android:name="com.google.ads.AdActivity"
              android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"></activity>

ত্রুটিটি হ'ল:

error: Error: String types not allowed (at 'configChanges' with value 'keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize').

যদি আমি কেবল ছেড়ে যাই keyboard|keyboardHidden|orientationতবে কোনও ত্রুটি নেই, তবে কম্পাইলার যখন আমি চেষ্টা ও বিল্ড করি তখন 4 জনকে জিজ্ঞাসা করে।

আমি ব্যবহার করছি GoogleAdMobAdsSDK-4.3.1

কোন ধারনা?

সম্পাদনা: আমার প্রজেক্টগুলি ( এসডিকে নীচে তারপরে 14 এর নীচে ডিফল্ট.প্রোপার্টি ) ফাইলটি এতে পরিবর্তন করে আমি এটি কাজ করেছিলাম :

# Project target.
target=android-14

এবং আমার মধ্যে SDK এর ম্যানেজার থাকার SDK এর প্ল্যাটফর্ম অ্যান্ড্রয়েড 4.0 - পরিবর্ধন ও পরিবর্তন 14 ইনস্টল করা নেই।

এটি এসডিকে প্ল্যাটফর্ম অ্যান্ড্রয়েড 3.2 - পুনর্বিবেচনা 13 এর জন্যও কাজ করা উচিত , তাই আপনার যদি প্রজেক্টগুলি লক্ষ্য করে তবে অ্যান্ড্রয়েড -13 এ টার্গেট করা উচিত that মূলত আপনাকে কেবল এটি নিশ্চিত করতে হবে যে এসডিকে পুনর্বিবেচনাটি 13 বা তার বেশি, এবং আপনার যে এসডিকে এসডিকে ম্যানেজারে ইনস্টল করা আছে এবং প্রকল্প লক্ষ্যটি ডিফল্ট / প্রজেক্টে রয়েছে target


আপনি কোন অ্যান্ড্রয়েড সংস্করণ ব্যবহার করেন?
হেফারওল্ফ

ন্যূনতম এসডিকে সংস্করণ 7 - অ্যান্ড্রয়েড 2.1
মার্ক ক্যামেরন

আমি লক্ষ্যটি 13 এ পরিবর্তন করার চেষ্টা করেছি, তবে এটি কাজ করছে না .. কারণ কী হতে পারে?
অনিরুদ

@ অনিরুদ্ধমদ্দী আপনি কি "অ্যান্ড্রয়েড: কনফিগারেশন =" কীবোর্ড | কীবোর্ডহিডেন | ওরিয়েন্টেশন | স্ক্রিনলয়েট | uiMode | স্ক্রিনসাইজ | ক্ষুদ্রতম স্ক্রিনসাইজ "বা সংক্ষিপ্ত একটি ব্যবহার করেছেন? আপনি যদি 13 এর উপরে আপনার টার্গেট পরিবর্তন করেন এবং একটির চেয়ে বেশি কনফিগার চেঞ্জ ব্যবহার করেন তবে এটি কাজ করা উচিত
গারকান কাভাক

@ গুরকান 15 এখন এটি কাজ করছে।
অনিরুদ

উত্তর:


74

সহজ উত্তর: উল্লিখিত কনফিগারেশনের পরিবর্তনগুলি অ্যান্ড্রয়েড 2.1 এ সমর্থন করে না, এখানে একবার দেখুন:

http://developer.android.com/guide/topics/manifest/activity-element.html#config

উদাহরণস্বরূপ uiMode এর API স্তর 8 প্রয়োজন Level

অফিসিয়াল অ্যাডমব ডকুমেন্টেশন থেকে:

আবশ্যকতা

অ্যান্ড্রয়েডের জন্য গুগল অ্যাডমব বিজ্ঞাপন এসডিকে অ্যান্ড্রয়েড 1.5 বা তার পরে প্রয়োজন। আপনার কাছে অ্যান্ড্রয়েড এসডিকে সর্বশেষতম অনুলিপি রয়েছে এবং আপনি কমপক্ষে অ্যান্ড্রয়েড ভি 3.2 ( ডিফল্টে লক্ষ্য নির্ধারণ করুন and অ্যান্ড্রয়েড -13 এ প্রোপার্টিগুলি সেট করুন ) এর বিরুদ্ধে সংকলন করছেন তা নিশ্চিত করুন

এখানে একবার দেখুন: https://developers.google.com/admob/android/quick-start

সুতরাং আমি মনে করি আপনার সরঞ্জাম সংস্করণটি কমপক্ষে সংস্করণ 13 এ আপডেট করা হয়নি।


আমি <uses-sdk android:minSdkVersion="7"/>8, 9, 10, 11, 12 সংস্করণে পরিবর্তন করেছি ... এখনও ত্রুটি আছে ... লাইনটি সরিয়ে দেওয়ার চেষ্টা করেছিল এবং এটি এখনও আমাকে ত্রুটি দেয়।
মার্ক ক্যামেরন

9
স্ক্রিনসাইজ এবং ক্ষুদ্রতম স্ক্রিনসাইজ কেবলমাত্র এপিআই লেভেল 13 এ সমর্থিত, যার অর্থ হানিকম্ব, আপনি কি এগুলি নিশ্চিত? যেহেতু তারা বেশ মধুচক্র নির্দিষ্ট।
হেফারওল্ফ

1
ঠিক আছে আমি যদি তাদের ঘোষণা না করি তবে আমি এটি লগগিকেটে পেয়েছি: The android:configChanges value of the com.google.ads.AdActivity must include screenLayout. The android:configChanges value of the com.google.ads.AdActivity must include uiMode. The android:configChanges value of the com.google.ads.AdActivity must include screenSize. The android:configChanges value of the com.google.ads.AdActivity must include smallestScreenSize. You must have AdActivity declared in AndroidManifest.xml with configChanges.এবং যেখানে বিজ্ঞাপনটি বোঝানো হয়েছে সেখানে আমি শেষ বর্ণের বার্তাটি একটি লাল রঙে লিখেছি get
মার্ক ক্যামেরন

1
আমি উপরের আমার প্রতিক্রিয়াতে এসডিকে থেকে একটি গুরুত্বপূর্ণ নোট যুক্ত করেছি।
হেফারওল্ফ

ঠিক আছে আমার ডিফল্ট.প্রপার্টি টার্গেটটি অ্যান্ড্রয়েড -7, আমি 13-এ পরিবর্তন করেছি এবং এটি বলে Unable to resolve target 'android-13'। আমার এসডিকে পরিচালক হিসাবে "অ্যান্ড্রয়েড এসডিকে সরঞ্জাম, পুনর্বিবেচনা 13" ইনস্টল করা আছে যদিও ...
মার্ক ক্যামেরন

86

সহজ সমাধান: (এবং আপনার ন্যূনতম-এসডিকে মান পরিবর্তন করার দরকার নেই !!)

পদক্ষেপ 1: "প্রকল্প.প্রপার্টি" ফাইলটি পরিবর্তন করুন

# Project target.
target=android-13

পদক্ষেপ 2: গ্রহনটিতে

Project > Clean... > (select your project) > Clean projects selected below > OK

বাস্তব উদাহরণ সহ সম্পূর্ণ ব্যাখ্যার জন্য এই টিউটোরিয়ালটি ব্যবহার করুন http://www.monkeycoder.co.nz/Commune/posts.php?topic=1121

চিয়ার্স!


1
অসাধারণ! আমিও গুগল এপিআই সংস্করণ সত্ত্বেও sdk7 ব্যবহার করছিলাম। সুতরাং আমি # প্রকল্পের লক্ষ্য ব্যবহার করেছি। টার্গেট = গুগল ইনক।: গুগল এপিআই: আমার সম্পত্তি ফাইলগুলিতে 13 টি।
কাজ করেছেন

18

Eclipse ব্যবহারকারীদের জন্য একটি সহজ উপায় রয়েছে: বাম "প্যাকেজ এক্সপ্লোরার" ফলকে আপনার প্রজেক্ট ফোল্ডারে ডানদিকে ক্লিক করুন এবং বৈশিষ্ট্যগুলি -> অ্যান্ড্রয়েড -> এবং "প্রকল্প বিল্ড লক্ষ্যমাত্রা" তালিকায় এপিআই 13 বা তারপরে চেক করুন।

দ্রষ্টব্য: এটি সম্পাদনার মতো একই প্রভাব project.propertiesযা যাইহোক স্বয়ংক্রিয়ভাবে উত্পন্ন।

এটি আপনার প্রকল্পটি অ্যান্ড্রয়েড 3.2 এসডিকে বিপরীতে তৈরি করবে যার মধ্যে এমন শর্তাদি রয়েছে যা পূর্বে অপরিচিত ছিল।

আপনি নিজের android:minSdkVersionএবং targetSdkVersionমানগুলি আপনার ম্যানিফেস্ট.এক্সএমএলে ছেড়ে যেতে পারেন ।

সতর্কতা অবলম্বন করুন , আপনি যদি targetSdkVersionএআইপি 12 বা তার চেয়ে কম সেট না করেন (বা একে একে সেট না করেন) তবে অ্যান্ড্রয়েড সিস্টেম ধরে নেবে যে android:configChangesমানগুলি screenSizeএবং smallestScreenSize(যা এপিআই 13 তে প্রবর্তিত হয়েছিল) এর জন্য গণ্য হয় এবং তাই হবে আপনার ক্রিয়াকলাপটি ধ্বংস-পুনঃসূচনা করার অনুমতি দেওয়া হয়েছে। আপনি যদি এড়াতে চান তবে আপনাকে অবশ্যই এই পদটি আপনার অন্যান্য <activity>ট্যাগগুলিতে অন্তর্ভুক্ত করতে হবে (যা সম্ভবত keyboard|keyboardHidden|orientationএখনও অবধি ছিল )।

তবে, যদি আপনার অ্যাপ্লিকেশনটি এপিআই লেভেল 12 বা তার চেয়ে কমের লক্ষ্যবস্তু করে, তবে আপনার ক্রিয়াকলাপ সর্বদা এই কনফিগারেশন পরিবর্তনটি পরিচালনা করে (কোনও অ্যান্ড্রয়েড 3.2 বা উচ্চতর ডিভাইসে চলাকালীন এই কনফিগারেশন পরিবর্তনটি আপনার ক্রিয়াকলাপটি পুনরায় আরম্ভ করে না)।

উক্তি থেকে এখানে


3

আমারও একই সমস্যা ছিল তাই আমি এখানে এসেছি।
আমি https://developers.google.com/admob/android/quick-start থেকে নমুনা কোডটি ডাউনলোড করেছি , উপরের সমস্ত উত্তরগুলির সাথে আমার এখনও সমস্যা ছিল তাই আমি একই অ্যাডমব এসডিকে ব্যবহার করেছি, তারা নমুনা প্রকল্পে অফার করে। বিল্ড জার্স জিনিসটি আবার করুন, টার্গেট পরিবর্তিত হয়েছে android-15এবং তারা একই লাইন ব্যবহার করেছেন:

<activity android:name="com.google.ads.AdActivity" 
              android:configChanges="keyboard|keyboardHidden|orientation"/>

এবং এটি কাজ করে!


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

0

তুমি কি ব্যবহার করেছিলে android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|‌​screenSize|smallestScreenSize

বা সংক্ষিপ্ত এক? আপনি যদি 13 এর উপরে আপনার টার্গেট পরিবর্তন করেন এবং দীর্ঘতর কনফিগ চেঞ্জগুলি ব্যবহার করেন (যা আমি লিখেছিলাম), এটি কাজ করা উচিত।



-4

14 ই অক্টোবর, 2011 এর পরে তৈরি করা সমস্ত নতুন অ্যান্ড্রয়েড অ্যাপ্লিকেশনগুলির জন্য একটি অ্যাডমব এসডিকে প্রয়োজন যা 15 ই মার্চ, 2011 বা তার পরে প্রকাশিত হয়েছিল This এটি অ্যান্ড্রয়েডের 4.0.0+ সংস্করণের সাথে মিলে যায়। আপনি যদি আমাদের অফিসিয়াল ডাউনলোড সাইট থেকে লাইব্রেরিটি ডাউনলোড করেন তবে আপনি ইতিমধ্যে সেট হয়ে গেছেন। অন্যথায় আপনার কাছে অ্যাডমব এসডিকে একটি পুরাতন সংস্করণ থাকতে পারে যা মার্চ 15, 2011 এর আগে প্রকাশিত হয়েছিল এবং আপনি আপনার এসডিকে আপডেট না করা পর্যন্ত আপনার নতুন অ্যাপ্লিকেশন কোনও বিজ্ঞাপন ছাপ গ্রহণ করবে না।


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