অ্যান্ড্রয়েডে স্ট্রিং.এক্সএমএল ফাইলে ত্রুটি


114

আমি string.xmlএকটি অ্যাপ্লিকেশন দীর্ঘ স্ট্রিং ঘোষণা করেছি ।

এভাবে ঘোষিত হয়েছে

<string name="terms">PLEASE READ THESE TERMS OF USE CAREFULLY  BY ACCESSING THIS .................</string>

তবে এটি নিম্নলিখিত ত্রুটি দেয়:

error: Apostrophe not preceded by \ (in PLEASE READ THESE TERMS OF USE CAREFULLY

1
ত্রুটিটি কারণ স্ট্রিংয়ের অনেকগুলি বিন্দু। `ত্রুটি: অ্যাপোসট্রফের আগে not একটি ডামি বার্তা নয়, সমস্যাগুলি বিন্দুতে রয়েছে। যেমনটি আমার মনে আছে, তিনটির বেশি বিন্দু পরে আপনি ত্রুটি পেতে পারেন।
ডুডিস্ট

উত্তর:


293

আপনার সম্পূর্ণ স্ট্রিং পোস্ট করুন। যদিও, আমার ধারণা আপনার স্ট্রিং-এ একটি অ্যাডোস্ট্রোফ (') অক্ষর রয়েছে। এটি (\ ') এর সাথে প্রতিস্থাপন করুন এবং এটি সমস্যার সমাধান করবে। উদাহরণ স্বরূপ,

//strings.xml
<string name="terms">
Hey Mr. Android, are you stuck?  Here, I\'ll clear a path for you.  
</string>

সূত্র:

http://www.mrexcel.com/forum/showthread.php?t=195353

https://code.google.com/archive/p/replicaisland/issues/48


30
কেউ কেন এই মূর্খতা প্রয়োজনের বিষয়ে কথা বলছে না যে স্ট্রিং ডেটাতে আমরা প্রতিটি একক অনুষঙ্গকে এড়িয়ে চলি? এমনকি সিডিএটিএ বিভাগে!
ফিল কুলাক

2
@ ফিলকুলাক হেই, উদাহরণস্বরূপ ফরাসিদের সাথে এটি বেশ পাগল। আমরা ftw অনুসন্ধান করব এবং প্রতিস্থাপন করব।
ওয়ারপজিট

4
@ ফিলকুলাক অ্যান্ড্রয়েড স্ট্রিং.এক্সএমএল এ, আপনি <string name="good_example">"This'll work"</string> রেফারেন্সের মতো অন্যান্য ধরণের এনকোলেজিং কোটায় পুরো স্ট্রিংটি ঘিরে ফেলতে পারেন : ডেভেলপার.অ্যান্ড্রয়েড
গাইড

আপনার যখন প্রচুর স্ট্রিং থাকে এবং সমস্ত প্রতিস্থাপন ব্যবহার করেন এটি সমস্যার সৃষ্টি করতে পারে। আমার উত্তর দেখুন।
ড্যান ব্রে

26

সমাধান

স্ট্রিং.এক্সএমএল-এ অ্যাপোসফ্রেস হিসাবে লেখা উচিত

\'


উদাহরণ

আমার ক্ষেত্রে আমার স্ট্রিং.এক্সএমএলে এই স্ট্রিংটিতে একটি ত্রুটি ছিল এবং আমি এটি ঠিক করেছিলাম।

<item>Most arguments can be ended with three words, "I don\'t care".</item>

এখানে আপনি দেখতে পাচ্ছেন যে আমার অ্যাপটি সেই কোডটি দিয়ে সঠিকভাবে তৈরি হয়েছে।

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

আমার অ্যাপে আসল স্ট্রিংটি এখানে।

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


1
বোকা আমাকে, যেহেতু আমি এক্সএমএল ব্যবহার করছিলাম, আমি & apos ব্যবহার করছিলাম, এবং এটিও একটি ত্রুটি।
ক্রিস ওয়েস্টিন 19

12

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


1
হা হা! আমার সাথেও তা ঘটেছিল। ঠিক সেই কারণেই অ্যাস্টিস্টোফ পপ আপ করতে থাকল। আমাকে বাদাম চালাচ্ছিল।
DrMcCleod

10

https://developer.android.com/guide/topics/resources/string-resource.html#FormattingAndStyling

এস্ট্রোপেস এবং উদ্ধৃতিগুলি অবলম্বন করা হচ্ছে

আপনার স্ট্রিংয়ে যদি কোনও অ্যাস্টোস্ট্রোফ বা উদ্ধৃতি থাকে তবে আপনাকে অবশ্যই এটি থেকে বাঁচতে হবে বা অন্য স্ট্রোকের কোটায় পুরো স্ট্রিংটি আবদ্ধ করতে হবে। উদাহরণস্বরূপ, এখানে কিছু স্টিংস রয়েছে যা কাজ করে না:

<string name="good_example">"This'll work"</string>
<string name="good_example_2">This\'ll also work</string>
<string name="bad_example">This doesn't work</string>
<string name="bad_example_2">XML encodings don&apos;t work</string>

6

অনাকাঙ্ক্ষিত অ্যাডাস্ট্রোফ (?<!\\)'অনুসন্ধানের জন্য এই রেজেক্সটি ব্যবহার করুন । এটি একটি অ্যাস্টোস্ট্রোফের সন্ধান করে যা ব্যাকস্ল্যাশের আগে হয় না।


4

আমি স্ট্রিং.এক্সএমএল এ হিব্রুও (আরটিএল ভাষা) ব্যবহার করি। আমি এই চরের জন্য স্ট্রিং.এক্সএমএলটি ম্যানুয়ালি অনুসন্ধান করেছি: 'এর চেয়ে আমি পালানোর চরকে যুক্ত করেছি it এর সম্মুখভাগ (এখন এটি \'র মতো মনে হচ্ছে) এবং এখনও একই ত্রুটি পেয়েছি!

আমি চরের জন্য আবার অনুসন্ধান করেছি এবং আমি চরটি '\' (ইঞ্জিন রাইটিং) দিয়ে প্রতিস্থাপন করেছি, যেহেতু এটি ডান থেকে বাম দেখায় এটি স্ট্রিংস.এক্সএমএলে 'like এর মতো দেখাচ্ছে !!

সমস্যা সমাধান.


@ কৌপ্পি, এই মন্তব্যটি আরটিএল ভাষা বিকাশকারীদের পক্ষে বেশি, যেহেতু আমরা এমন সম্পাদকদের মুখোমুখি হলাম যেগুলি পর্দায় ভুল ক্রমে অক্ষর দেখিয়ে আরটিএলকে খুব ভালভাবে পরিচালনা করতে পারে না। এক্সএমএলে লম্বা হিব্রু রোধে টাইপ করা অগোছালো হতে পারে
Li3ro

আহ, ডান থেকে বাম সব কিছু এখন অর্থপূর্ণ মনে হচ্ছে। ধন্যবাদ।
akauppi

3
আমরা উভয় পক্ষেই পালিয়ে হিব্রু
অ্যাডোস্টোফসের

2

আপনি ইউনিকোড সমতুল্য উভয়ই অ্যাস্টোস্ট্রোফ এবং অন্যান্য অক্ষর ব্যবহার করতে সক্ষম হতে পারেন যা এক্সএমএল স্ট্রিংয়ে সমর্থিত নয়। অ্যাপোসট্রফের সমতুল্য "\ u0027"।


1

1. ত্রুটির জন্য: স্ট্রিংয়ে অবিরত অস্ট্রোফের

আমি যা পেয়েছি তা হ'ল AAPT2 সরঞ্জামটি কখনও কখনও xML- এ ভুল সারিতে নির্দেশ করে। সুতরাং আপনার পুরো স্ট্রিং.এক্সএমএল ফাইলটি সংশোধন করা উচিত

অ্যান্ড্রয়েড স্টুডিওতে সমস্যাযুক্ত ফাইলের ব্যবহার:

Edit-> find-> প্রতিস্থাপন

তারপরে প্রথম ক্ষেত্রে '' (বা \ &,>, \ <,) ") লিখুন
দ্বিতীয়
পুতে '(বা &,>, <,") তারপর প্রয়োজনে প্রতিস্থাপন করুন or (বা "সমস্ত ক্ষেত্রে প্রতিস্থাপন করুন" ক্ষেত্রে )
তারপরে প্রথম ক্ষেত্রে আবার '(বা &,>, <, ")
লিখুন এবং দ্বিতীয় লেখায়
needed ' তারপরে প্রয়োজনে প্রতিটি প্রতিস্থাপন করুন or অথবা 'এর সাথে" সমস্ত প্রতিস্থাপন করুন ")

২. অন্যান্য সমস্যাযুক্ত চিহ্নগুলির জন্য
আমি প্রতিটি পরবর্তী অর্ধেক অংশ + মন্তব্য করতে ব্যবহার করি যতক্ষণ না আমি ভুল চিহ্নটি না পাই rebu

যেমন একটি পালানো শব্দ "\ আপডেট" অপ্রত্যাশিতভাবে এ জাতীয় ত্রুটি ফেলে দেয় :)


1

কেবলমাত্র কাজগুলি 'দিয়ে পালিয়ে যাওয়ার সর্বোত্তম উত্তরটি \'তবে আমি সমাধানটি পছন্দ করি না কারণ সমস্তটি প্রতিস্থাপন 'করার সময় \'এটি কেবল একবারে কাজ করে। দ্বিতীয়বার আপনার সাথে চলে যাবেন \\'

অতএব, ব্যবহার করুন: \u0027

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