অ্যান্ড্রয়েড স্টুডিওতে আমি কীভাবে আমার প্রজেক্টের সমস্ত হার্ড কোডড স্ট্রিংগুলি খুঁজে পেতে পারি


92

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

অ্যান্ড্রয়েড স্টুডিওতে (বিটা) 0.84-এ ফাইল / সেটিং / ফাইন্ডব্যাগস-আইডিইএ আইপি 18 এন রিপোর্টিং ট্যাবের অধীনে একটি বিকল্প হিসাবে দেখায়। তবে আমি কীভাবে এটি কাজ করব তা বুঝতে পারি না।

কোন পরামর্শের জন্য ধন্যবাদ।

উত্তর:


129

যেমনটি @ মাওর হাদাদ এবং অন্যান্য উপদেষ্টা আমাকে পরামর্শ দিয়েছেন: আমি আমার মন্তব্যে উত্তরে রূপান্তর করি, তাই:

অ্যান্ড্রয়েড স্টুডিও ২.২.২ থেকে, এখানে একটি নতুন বিকল্প রয়েছে

"Analyse > Run inspection By Name" => "Hardcoded strings".

আমি এটি ব্যবহার করেছি এবং এটি "হার্ডকোডযুক্ত পাঠ্য" (যেটি কেবলমাত্র এক্সএমএল ফাইলগুলি পরীক্ষা করে) চেয়ে বর্তমান সংস্করণে বেশ নির্ভরযোগ্য বলে মনে হচ্ছে।

এখানে লিঙ্কটি দেখেছে


33
মনে রাখবেন, Hardcoded Textপরিদর্শনগুলি .XMLফাইলগুলিতে হার্ডকোডযুক্ত পাঠ্যগুলি ফিরিয়ে দেয় , অন্যদিকে Hardcoded Stringsপরিদর্শন .javaফাইলগুলিতে হার্ডকোডযুক্ত পাঠ্যগুলি ফেরত দেয় ।
লয়ালার

দয়া করে এখানে আমার অনুরূপ সমস্যার উত্তরটি দেখুন stackoverflow.com/a/56121083/3904109
ড্রাগনফায়ার

আমার একই রকম কাজ ছিল তবে আমার ফ্লটার প্রকল্পের জন্য। উপরে উল্লিখিত পরিদর্শন প্রত্যাশিত ফলাফল আনেনি, তাই আমি একটি রেজেক্স চেষ্টা করেছি। ".+\Q\Eযদি আপনি একটি একক সাথে ডাবল উদ্ধৃতিটি প্রতিস্থাপন করেন তবে আপনি সমস্ত স্ট্রিংগুলি একক উদ্ধৃতিতে পাবেন।
pbertsch

117

"বিশ্লেষণ করুন> নাম অনুসারে পরিদর্শন চালান ..." এ যান এবং "হার্ডকোডযুক্ত পাঠ্য" টাইপ করুন। আপনার পুরো প্রকল্পের বিপরীতে এটি চালান এবং আপনার পরিদর্শন ফলাফল প্যানেলটি পাওয়া উচিত যা হার্ডকোডযুক্ত পাঠ্য দৃষ্টান্তগুলি দেখায়।

আপনি অ্যান্ড্রয়েড স্টুডিও> অগ্রাধিকার> পরিদর্শন> হার্ডকোডযুক্ত পাঠ্যেও যেতে পারেন এবং এটি কীভাবে চলতে পারে তা নির্দিষ্ট করে এবং কী (যদি থাকে) বিশেষ কেসগুলি পরিদর্শন থেকে বাদ দেওয়া হয়।


4
এটি দুর্দান্তভাবে কাজ করেছে! ধন্যবাদ বিটিডাব্লু, এমন কোনও সরঞ্জাম রয়েছে যা পাঠ্যের উপর ভিত্তি করে উত্পন্ন উত্স আইডি ব্যবহার করে মানগুলি। XML ফাইলটিতে স্বয়ংক্রিয়ভাবে স্ট্রিংগুলি বের করতে পারে? এটি একটি দুর্দান্ত সাহায্য হবে। তারপরে একটি মাত্র গিয়ে সংক্ষিপ্ত কিছুতে সংস্থান আইডির নামগুলি সংশোধন করতে পারে।
ফররুখ নাজমি

আমি অটোমেটিক সম্পর্কে জানি না, তবে আমি বিশ্বাস করি আপনি যদি একটি স্ট্রিং হাইলাইট করেন এবং অপশন-এন্টার টিপান, আপনি স্বয়ংক্রিয়ভাবে সেই স্ট্রিংটি বের করার একটি বিকল্প পাবেন তবে আপনাকে নিজেই নামটি টাইপ করতে হবে।
কেভিন কপোকক

4
অ্যান্ড্রয়েড স্টুডিওর একটি দুর্দান্ত বৈশিষ্ট্য +1 করুন। ফলাফল থেকে android.util.Log বার্তাগুলি বাদ দেওয়ার জন্য কি কোনও উপায় খুঁজে পেয়েছে? (আমার ফলাফলের প্রায় 95%!)
বেন ক্লেটন

6
তথ্যের জন্য: অ্যান্ড্রয়েড স্টুডিও 1.2.2 "নাম অনুসারে পরিদর্শন চালান" => "হার্ডকোডযুক্ত স্ট্রিংগুলিতে" একটি নতুন বিকল্প যুক্ত করেছে। এটি "হার্ডকোডযুক্ত পাঠ্য" এর চেয়ে বর্তমান সংস্করণ সহ বেশ নির্ভরযোগ্য বলে মনে হচ্ছে। এখানে লিঙ্কটি
পিএডি

@ প্যাড আপনার উত্তর হিসাবে এটি লিখতে হবে। হার্ডকোডযুক্ত পাঠ্যটি কেবলমাত্র এক্সএমএল ফাইল দেয়। ty :)
মাওর হাদাদ

11

উইন্ডোজ প্ল্যাটফর্মের জন্য, আমি যে সবচেয়ে ভাল উপায়টি খুঁজে পেয়েছি তা হ'ল:

আপনি এই শর্টকাটটি ব্যবহার করতে পারেন Ctrl Alt Shift Iএবং অনুসন্ধান করতে পারেন ,

হার্ডকোডযুক্ত পাঠ্য

অনুসন্ধান বারে।

আপনি উপযুক্ত মডিউল নির্বাচন করতে পারেন যেখানে আপনি হার্ডকোডযুক্ত স্ট্রিংগুলি অনুসন্ধান করতে চান এবং এটি আপনাকে সমস্ত স্ট্রিংয়ের তালিকা একসাথে দেবে।

মডিউল নির্বাচন করার জন্য বিকল্প


1

আপনি যদি কেবলমাত্র সমস্ত লেআউট ফাইলগুলিতে সমস্ত হার্ড কোডেড স্ট্রিংগুলি সন্ধান করতে চান তবে আপনি চালিয়ে খুব তাড়াতাড়ি করতে পারেন -

vinayak@vinayak-osx:layout $ grep -n "android:text=\"" * | grep -v "@string"

নোটস -
1. grepউইন্ডোজ
2 ব্যবহার করা যাবে না 2 প্রথম cdপ্রকল্পের layoutদির
3। কেপপক উত্তরটি দুর্দান্ত, তবে এটি খুব বেশি সময় নেয়


grep কমান্ড প্রয়োগ ভাল কাজ করে, কিন্তু যোগ কিভাবে এছাড়াও কমান্ডে databinding উপেক্ষা করার
কাশ্যপ

1

ব্যবহারের Ctrl+ + Shift+ + Fউইন্ডোজ সর্বত্র অনুসন্ধান করার জন্য সমন্বয়, এটা দেখায় এছাড়াও পূর্বরূপ দেখুন।

ব্যবহারের Ctrl+ + FWindows এর জন্য সমন্বয় বর্তমান ফাইলে অনুসন্ধান ব্যবহার করুন।

ব্যবহারের Shift+ + Shift(ডবল Shift টিপুন) Windows এর জন্য সমন্বয় প্রকল্প প্রকল্প ফাইল অনুসন্ধান করতে।

পুরানো সংস্করণগুলির জন্য অনুপলব্ধ হতে পারে।


1

আমার জন্য যা ভাল কাজ করেছে তা পুরো প্রকল্পে রেজেক্স ব্যবহার করে অনুসন্ধান করা হয়েছিল:

অ্যান্ড্রয়েড: পাঠ্য = "[এজেড]

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

এই কোটলিন / জাভা শ্রেণীর ভিতরে সন্ধান করতে:

[।] পাঠ্য = "[এজেড]

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

[।] সেটটেক্সট ("

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

উপরের এই চিত্রের একেবারে শেষে। * নীল বোতামে টিপ করতে ভুলবেন না

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