আমি যখনই কোনও নতুন প্রকল্প তৈরি করি তখন কেন গ্রহগ্রন্থটি স্বয়ংক্রিয়ভাবে অ্যাপকম্প্যাট ভি 7 লাইব্রেরি সমর্থন যুক্ত করে?


217

appcompat v7আমি যখনই কোনও নতুন প্রকল্প তৈরি করি তখন কেন গ্রহন গ্রন্থাগার সমর্থন স্বয়ংক্রিয়ভাবে যুক্ত করে ?

আমি একটি সাধারণ প্রকল্প তৈরি করছি যার MainActivityপ্রসারিত হওয়া উচিত Activity, তবে তা হয় না। গ্রহণটি স্বয়ংক্রিয়ভাবে অ্যাকশন বার সমর্থন যুক্ত করে।

আমি appcompatলাইব্রেরি ছাড়া কীভাবে একটি সহজ প্রকল্প তৈরি করব ? এফওয়াইআই, আমি সম্প্রতি আপডেট হওয়া সমস্ত কিছু সহ এডিটির সর্বশেষ সংস্করণটি ডাউনলোড করেছি। আমি উইন্ডো 7 এক্স 64 ব্যবহার করছি।

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

উত্তর:


105

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

এই কারণেই অ্যান্ড্রয়েড কোড টেম্পলেটগুলির সরঞ্জামগুলিAndroid Development Tools (ADT) ডিফল্টরূপে ইন্টিগ্রেটেডের মাধ্যমে গ্রহনে অন্তর্ভুক্ত ।

আমি লক্ষ করেছি যে আপনি API 15আপনার নমুনায় লক্ষ্য রেখেছেন, তবে আপনার প্যাকেজের জন্য মিমিনামের প্রয়োজন এসডিকে API 10, যার জন্য সামঞ্জস্যের লাইব্রেরিগুলি প্রচুর পরিমাণে পশ্চাদপটে সামঞ্জস্যপূর্ণ এপিআই সরবরাহ করতে পারে। একটি উদাহরণ Fragment APIহ'ল এই সিস্টেমে একটি পুরানো সংস্করণ চালিত এমন কোনও ডিভাইসে কোন অ্যাপেয়ার্ড API 11 (অ্যান্ড্রয়েড 3.0.০ হানিকম্ব) ব্যবহারের দক্ষতা হবে ?

এটি লক্ষণীয় যে আপনি ডিফল্টরূপে সমর্থন লাইব্রেরির স্বয়ংক্রিয় অন্তর্ভুক্তিকে নিষ্ক্রিয় করতে পারেন ।


54
ওয়েল thats বিএস। আমি গত 2 মাস ধরে এপিআই লেভেল 10-তে গ্রহনটি ব্যবহার করে আসছি এবং এই ফ্রিকিং কিটকাট এপিআই বের না হওয়া অবধি সামঞ্জস্যযোগ্যতা গ্রন্থাগার বা একটি খণ্ড বিন্যাসটি কখনও আমদানি করিনি। এই মুহুর্তে এটি প্রদর্শিত হওয়া বন্ধ করার সহজতম উপায় হ'ল স্বয়ংক্রিয়ভাবে কোনও কার্যকলাপ তৈরি করা নয়। সুতরাং আপনাকে প্রকল্পটি তৈরি করার সময় আপনার "ক্রিয়াকলাপ তৈরি করুন" আনটিক করতে হবে এবং নিজের তৈরি করতে হবে।
ব্যবহারকারী 3223214

2
হ্যাঁ, এটিই মূল বিষয়, উপরের কারণগুলির কারণে গ্রন্থাগারটি সর্বদা অন্তর্ভুক্ত থাকবে।
হালিম ক্যারোম

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

1
অ্যাপ_কম্প্যাট এড়ানো কি আরও ভাল?
নিওলার্দো ভ দিনসি

2
জিৎ গুগল !!! প্যাচিং এবং প্যাচিং এবং প্যাচিং ছেড়ে দিন, এই সমস্ত সহায়তার লাইব্রেরি ত্রুটি এবং সংস্করণগুলি আমাদের বাদাম চালাচ্ছে।
জোশ

59

একটি নতুন তৈরি করুন Android Application Projectএবং দ্বিতীয় ধাপে আনচেক করুন Create activity(প্রকল্পটি কনফিগার করুন)।


ধন্যবাদ তবে menuফোল্ডারটি আমার প্রকল্পে তৈরি করা হয়নি।
স্টিভ

1
আমার কর্মক্ষেত্র থেকে appcompat_v7 প্রকল্পটি মোছা এবং 'ক্রিয়াকলাপ তৈরি করুন' অপশনটি পরীক্ষা করে একটি নতুন অ্যান্ড্রয়েড প্রকল্প তৈরি করা আমার পক্ষে কৌশলটি করেছে। অন্যান্য উত্তরে নির্দিষ্ট করা বিষয়গুলি আমার পক্ষে কার্যকর হয়নি। ধন্যবাদ।
শ্রীনিবাসন এন

22

যখনই আমি একটি নতুন প্রকল্প তৈরি করি তখন কেন আমারগ্রহণটি স্বয়ংক্রিয়ভাবে অ্যাপকম্প্যাট ভি 7 লাইব্রেরি সমর্থন যুক্ত করে

কারণ আপনার লক্ষ্য এসডিকে 15 এ সেট করা হয়েছে, এতে অ্যাকশন বারটি ডিফল্টরূপে চালু হয় এবং আপনার সর্বনিম্ন সমর্থিত এসডিকে 10 তে সেট করা থাকে অ্যাকশন বারটি 11 এ আসে, সুতরাং আপনার জন্য একটি সমর্থন লাইব্রেরি প্রয়োজন, গ্রহটি এটি আপনার জন্য যোগ করে। রেফারেন্স।

আপনি প্রকল্পের বৈশিষ্ট্যগুলির নির্মাণের পথে প্রকল্প গ্রন্থাগারগুলি কনফিগার করতে পারেন।


12
আমি যদি ন্যূনতম এসডিকে 12 বা 13 হিসাবে কনফিগার করে থাকি তবে আমি এখনও গ্রহন থেকে একই আচরণ পাই ...
মাইকি

18

অন্ধকার স্বয়ংক্রিয়ভাবে Kitkat API- এর appcompat_v7.Because নিজেই চালু এটি স্বয়ংক্রিয়ভাবে যোগ করা নির্মিত appcompat_v7এবং fragment_main.xml

এগুলি সমাধান করার সর্বোত্তম উপায়:

  1. প্রথমত প্রকল্পে ,। আপনি স্থাপন করা Right click->properties->Androidদেখতে পারেন । এটিতে ক্লিক করুন এবং এটিকে সরান hen তারপরে সঠিক টার্গেটের নামটি টিক দিন ।red marked appcompatReferenceProject Build Target

  2. মুছে ফেলুন fragment_main.xml এবং Appcompat ফাইলটি আপনার তৈরি করা অন্ধকার

  3. আপনার ক্রিয়াকলাপ_মাইন.এক্সএমএল এর মতো সম্পাদনা করুন এবং পরিবর্তন করুন :

    <?xml version="1.0" encoding="utf-8"?>
    
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/hello_world" />
    
    </RelativeLayout>
    
  4. ইন মাঝামাঝি / মান / styles.xml:

    <resources>
    
        <style name="AppBaseTheme" parent="android:Theme.Light">
    
        </style>
    
        <!-- Application theme. -->
        <style name="AppTheme" parent="AppBaseTheme">
    
        </style>
    
    </resources>
    
  5. ইন মাঝামাঝি / মানের- v11 / styles.xml এইসব পরিবর্তন করতে হবে:

    <resources>
    
        <style name="AppBaseTheme" parent="android:Theme.Holo.Light">
        </style>
    
    </resources>
    
  6. ইন মাঝামাঝি / মান- v14 / styles.xml এইসব পরিবর্তন করতে হবে:

      <resources>
    
        <style name="AppBaseTheme" parent="android:Theme.Light">
        </style>
    
        <style name="AppTheme" parent="AppBaseTheme">
        </style>
    
    </resources>
    
  7. আপনার মেনু / main.xML এর মতো পরিবর্তন করুন :

    <menu xmlns:android="http://schemas.android.com/apk/res/android" >
    
        <item
            android:id="@+id/action_settings"
            android:orderInCategory="100"
            android:showAsAction="never"
            android:title="@string/action_settings"/>
    
    </menu>
    
  8. অবশেষে আপনার মেইনএ্যাকটিভিটি.জভাটি এগুলির মতো পরিবর্তন করুন :

    import android.app.Activity;
    import android.os.Bundle;
    
    
    public class MainActivity extends Activity {
    
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
    }
    
    }
    

নতুন প্রজেক্ট তৈরির জন্য লাইকিজিয়ালগুলি আপনাকে এটি করতে হবে


2
তারা কী ভাবছে? এর জন্য গ্রহনটির একটি ক্লিকের সমাধান থাকা উচিত নয়?
পেসেরিয়র

1
@ পেসার: হ্যাঁ অ্যাপকম্প্যাট_ভি 7 ব্যবহার করে।
ডেভিড লিউ 19

8

এটি অন্তর্ভুক্ত করা হয়েছে কারণ আপনার ন্যূনতম এসডিকে সংস্করণটি 10 ​​এ সেট করা ActionBarহয়েছে API এটি এপিআই ১১-এ প্রবর্তিত হয়েছিল E গ্রহটি এটি স্বয়ংক্রিয়ভাবে যুক্ত হয় যাতে আপনার অ্যাপ্লিকেশনটি আপনি সমর্থন করছেন এমন সমস্ত অ্যান্ড্রয়েড সংস্করণগুলির বর্ণালী জুড়ে আরও সামঞ্জস্যপূর্ণ হতে পারে।


4

আপনি যদি ২.x সংস্করণ লক্ষ্য না করে থাকেন তবে আপনি আপনার সর্বনিম্ন s.x এর এসডিকে সংস্করণ সেট করতে পারেন এবং তারপরে প্রকল্পটি তৈরি করতে পারেন। Appcompat V7 lib তৈরি হবে না।


4

আমি অ্যান্ড্রয়েডের সাথে নতুন এবং আমি যখন নতুন অ্যান্ড্রয়েড অ্যাপ্লিকেশন প্রকল্প তৈরি করি তখন অ্যাপ্লিকেশনটি সর্বদা তৈরি হয় me

এটি প্রায় চারপাশে হাঁটা। প্রকল্পের বৈশিষ্ট্যগুলি -> অ্যান্ড্রয়েড চয়ন করুন তারপরে লাইব্রেরী বাক্সে কেবল অ্যাপকম্প্যাট_ভি 7_x সরিয়ে অ্যাপকম্প্যাট_ভি 7 যুক্ত করুন। এখন আপনি appcompat_v7_x মুছতে পারেন।

প্রোজেক্ট উইজার্ড তৈরিতে ক্রিয়াকলাপ ক্রিয়াকলাপ কাজ করে না, কারণ উইজার্ডের মাধ্যমে ক্রিয়াকলাপ তৈরি করার সময় অ্যাপকম্প্যাট_ভি 7_x আবার উপস্থিত হয়। আমার এডিটির সংস্করণটি v22.6.2-1085508
আমার ইংরেজি খারাপ হলে আমি দুঃখিত।


1
এখানে অনেকগুলি উত্তর উপস্থিত রয়েছে তা দেখুন answer এই বিভাগটি উত্তরের জন্য You আপনি উত্তর বিভাগে প্রশ্ন পোস্ট করেছেন।
তালহা কিউ

1
আমি কেবল appcompat_v7_x অপসারণের একটি উপায় দেখাতে চাই এবং আমি মনে করি এটি একটি প্রশ্ন নয়। যদি আমি কোনও ভুল করে থাকে তবে দয়া করে আমাকে ক্ষমা করুন কারণ আমি স্ট্যাকওভারফ্লোতে নতুন।
Lê Quang Duy

3

আমার ইংরাজির সাথে দুঃখিত, আপনি যখন একটি নতুন অ্যান্ড্রয়েড প্রকল্প তৈরি করেন, আপনার উচ্চ স্তরের এপি বেছে নেওয়া উচিত, উদাহরণস্বরূপ: এপিআই 17 থেকে এপিআই 21, এতে অ্যাপকম্প্যাট থাকবে না এবং প্রজেক্ট ভাগ করে নেওয়া খুব সহজ হবে না। আপনি যদি এটি নিম্ন এপিআই দিয়ে করেন তবে আপনি কেবল উচ্চতর এপিআই থাকতে Android ম্যানিফেস্টে সম্পাদনা করুন :) এর পরে, আপনি অ্যাপকম্প্যাট ভি 7 মুছতে পারেন।


2

Http://developer.android.com/guide/topics/ui/actionbar.html অনুসারে

অ্যাকশনবারের এপিআইগুলি প্রথমে অ্যান্ড্রয়েড 3.0.০ (এপিআই স্তর ১১) এ যুক্ত করা হয়েছিল তবে এগুলি অ্যান্ড্রয়েড ২.১ (এপিআই স্তর)) এবং তারপরের সাথে সামঞ্জস্য করার জন্য সমর্থন লাইব্রেরিতে পাওয়া যায় are

সংক্ষেপে বলতে গেলে, যে স্বয়ং-জেনারেট হওয়া প্রকল্পের তুমি চক্ষুষ্মান modularizes API গুলি 7-10 করার ActionBar যোগ করার প্রক্রিয়া।

ফ্রিওতে অ্যাকশনবারের উদাহরণ

বিষয়টির সরল বর্ণন এবং টিউটোরিয়ালের জন্য http://hmkcode.com/add-actionbar-to-android-2-3-x/ দেখুন ।


0

আমি এডিটি 22.6.2 সংস্করণ সহ নতুন অ্যান্ড্রয়েড প্রকল্প তৈরি করার সময় 'অ্যাপকম্প্যাট' গ্রন্থাগারটি লক্ষ্য করেছি, এমনকি মিনিএসডিকে 11 এ সেট করা হয়েছিল এবং টার্গেটএসডিকে 19 সেট করা হয়েছিল

এটি হচ্ছিল কারণ, নতুন প্রকল্পের টেমপ্লেটে অ্যান্ড্রয়েড কিছু বৈশিষ্ট্যগুলি সমর্থন লাইব্রেরি থেকে ব্যবহার করছে। উদাহরণস্বরূপ যদি অ্যাকশনবারের সাহায্যে কোনও নতুন প্রকল্প তৈরি করা হয় তবে মেনুটির মেইন.এক্সএমএলে কোনওটি app:showAsAction="never"সমর্থন লাইব্রেরি থেকে পাওয়া যেতে পারে ।

  • অ্যাপটি যদি অ্যান্ড্রয়েড সংস্করণ 11 এবং তারপরে আরও লক্ষ্যযুক্ত হয় তবে কেউ এই বৈশিষ্ট্যটিকে android:showAsActionমেনুর মূল.এক্সএমএল এ পরিবর্তন করতে পারেন
  • এছাড়াও ডিফল্ট থিম সেটটি "থিম.এপকম্প্যাট.লাইট.ডর্ক অ্যাকশনবার" হতে পারে নীচে প্রদর্শিত (স্টাইলস.এক্সএমএল)

    <style name="AppBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar">
           <!-- API 14 theme customizations can go here. -->
       </style> 
    

    এক্ষেত্রে স্টাইল.এক্সএমএল এর মূল থিমটি "অ্যান্ড্রয়েড: শৈলী / থিম.হলো.লাইট.ডর্ক অ্যাকশনবার" এ পরিবর্তন করতে হবে

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