অ্যান্ড্রয়েড ডেক্স বিল্ড করার সময় একটি বাফারওভারফ্লো এক্সপ্লেশন দেয়


174

কোনও নির্দিষ্ট অ্যান্ড্রয়েড প্রকল্প সংকলন করার সময় এবং শুধুমাত্র আমার উইন্ডোজ মেশিনে, আমি java.nio.BufferOverflowExceptionডেক্স থেকে একটি সময় পাই । গ্রহটি ব্যবহার করার সময় এবং পিপীলিকা ব্যবহার করার সময় উভয়ই সমস্যা দেখা দেয়।

পিঁপড়া ব্যবহার করার সময় আউটপুটটি হ'ল:

...
  [dex] Pre-Dexing C:\MyProject\libs\android-support-v4.jar -> android-support-v4-5f5341d3c1b10a79d7d93f9c1e64421e.jar
  [dex] Converting compiled files and external libraries into C:\MyProject\bin\classes.dex...
   [dx]
   [dx] UNEXPECTED TOP-LEVEL EXCEPTION:
   [dx] java.nio.BufferOverflowException
   [dx]     at java.nio.Buffer.nextPutIndex(Buffer.java:499)
   [dx]     at java.nio.HeapByteBuffer.putShort(HeapByteBuffer.java:296)
   [dx]     at com.android.dex.Dex$Section.writeShort(Dex.java:818)
   [dx]     at com.android.dex.Dex$Section.writeTypeList(Dex.java:870)
   [dx]     at com.android.dx.merge.DexMerger$3.write(DexMerger.java:437)
   [dx]     at com.android.dx.merge.DexMerger$3.write(DexMerger.java:423)
   [dx]     at com.android.dx.merge.DexMerger$IdMerger.mergeUnsorted(DexMerger.java:317)
   [dx]     at com.android.dx.merge.DexMerger.mergeTypeLists(DexMerger.java:423)
   [dx]     at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:163)
   [dx]     at com.android.dx.merge.DexMerger.merge(DexMerger.java:187)
   [dx]     at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439)
   [dx]     at com.android.dx.command.dexer.Main.runMonoDex(Main.java:287)
   [dx]     at com.android.dx.command.dexer.Main.run(Main.java:230)
   [dx]     at com.android.dx.command.dexer.Main.main(Main.java:199)
   [dx]     at com.android.dx.command.Main.main(Main.java:103)

BUILD FAILED
C:\Users\Jaap\android-sdks\tools\ant\build.xml:892: The following error occurred while executing this line:
C:\Users\Jaap\android-sdks\tools\ant\build.xml:894: The following error occurred while executing this line:
C:\Users\Jaap\android-sdks\tools\ant\build.xml:906: The following error occurred while executing this line:
C:\Users\Jaap\android-sdks\tools\ant\build.xml:284: null returned: 2

Eclipse ব্যবহার করার সময় বার্তাটি সংক্ষিপ্ত হলেও অনুরূপ:

[2013-11-01 14:29:44] APK file is not created for Project: 
[2013-11-01 14:29:46 - Dex Loader] Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack trace.
[2013-11-01 14:29:46 - MyProject] Conversion to Dalvik format failed: Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack trace.

আমি যেমন বলেছি, আমার ম্যাকবুকটিতে আমার এই সমস্যা নেই, যদিও এগুলি উভয়ই অ্যান্ড্রয়েড বিল্ড সরঞ্জামগুলির সর্বশেষ সংস্করণে আপগ্রেড করা হয়েছে: 19.0.0।


1
আপনি গ্রন্থাগার ব্যবহার করেন? তাদের সেটআপটি দেখুন
শেরিফ এলখতিব

@ শরিফেল খতিব, কেবল সমর্থন লাইব্রেরি এবং গুগল অ্যানালিটিক্স ভি 2
বেটসট্রা

10
যেহেতু কেউ এই বিষয়ে এখনও কোনও সমস্যা দায়ের করেছে বলে মনে হয় না, তাই আমি এখানে একটি ফাইল করেছি
CommonsWare

সমস্ত অ্যান্ড্রয়েড এসডিকে, গ্রহন এবং কোড সরিয়ে চেষ্টা করে।
ভপঠাক

সেন্টোস x64 এ সিমিয়ার ত্রুটি পেয়েছে:! সেশন 2013-11-07 17: 07: 35.305 eclipse.buildId = v22.3.0-887826 java.version = 1.7.0_40 java.vendor = ওরাকল কর্পোরেশন বুটলডার কনস্ট্যান্টস: ওএস = লিনাক্স, এআরসিএচ = x86_64, WS = gtk, NL = en_US ফ্রেমওয়ার্ক আর্গুমেন্ট: -প্রডাক্ট com.android.ide.eclipse.adt.package.pr Prodct কমান্ড-লাইন আর্গুমেন্ট: -অনেক লিনাক্স -উস gtk -arch x86_64 -রকম com.android.ide.eclipse .adt.package.product java.nio.BufferOverflowException at java.nio.Buffer.nextPutIndex (বাফার.জভা .519)
isti_spl

উত্তর:


230

18.1.1 1 এ বিল্ড সরঞ্জামগুলি ডাউনগ্রেড করার দরকার নেই , এই সমস্যাটি বিল্ড সরঞ্জামগুলির সাথে স্থির করা হয়েছে 19.0.1

আপনি যদি কোনও কারণে 19.0.1 ব্যবহার করতে না পারেন তবে:

নিশ্চিত করুন যে মান করুন android:targetSdkVersionমধ্যে Andro আইডি মিলে যায় target=android-<value>project.properties । যদি এই দুটি মান একই না হয় তবে বিল্ড সরঞ্জামগুলির সংস্করণ 19.0.0 দিয়ে বিল্ডিং বাফারওভারফ্লোএক্সসেপশনে শেষ হবে। উৎস

এই পোস্টে মন্তব্যগুলি থেকে কিছু ইঙ্গিতও রয়েছে যে আপনাকে কমপক্ষে 19 (অ্যান্ড্রয়েড -19) লক্ষ্য করা দরকার। আপনার লক্ষ্য <19 হয় যদি এই সমাধানটি কাজ করে তবে একটি মন্তব্য করুন।

ঠিকঠাকটি আমার প্রকল্পের জন্য এটি দেখায়সম্পর্কিত এওএসপি সমস্যাটি # 61710।

1 যদি আপনাকে সত্যিই ডাউনগ্রেড করতে হয়, আপনার বিল্ড সরঞ্জামগুলি 19.0.0 আনইনস্টল করার দরকার নেই, কেবল 18.1.1 ইনস্টল করুন sdk.buildtools=18.1.1এবং local.propertiesফাইলটিতে যুক্ত করুন।


5
এটি আমার পক্ষে কাজ করে না। সমস্ত প্রজেক্ট.প্রপার্টি এবং টার্গেটএসডিকে যাচাই করা হয়েছে। আমি ইন্টেলিজ আইডিইএ 13 কার্ডিয়ার সর্বশেষতম সংস্করণটি ব্যবহার করছি। ভাগ্যক্রমে, বিল্ড-সরঞ্জামগুলি আনইনস্টল করা 19.0.0 বিল্ডটি ঠিক করেছিল।
জেমস ওয়াল্ড

3
আমার এটি কাজ করার জন্য, আমাকে লক্ষ্য এসডিকে সর্বশেষ সংস্করণে (19) সেট করতে হয়েছিল।
RolandK

এবং লক্ষ্য করুন যে আপনার এসডিকে পরিচালক দ্বারা এসডিকে সংস্করণ ডাউনলোড হয়েছে (এটি আমার সমস্যার কারণ)।
mrmoment

1
অ্যান্ড্রয়েড ম্যানিফেস্ট.এক্সএমএল এবং প্রজেক্ট.প্রপার্টি উভয়েই আমার লক্ষ্য ছিল 10। Eclipse পুনঃসূচনা এবং পরিষ্কার করার চেষ্টা করা হয়েছিল, কিন্তু সাহায্য করেনি। তারপরে আমি কনফিগারেশনগুলিতে 19 টি লক্ষ্য রেখেছি এবং এটি কার্যকর হয়েছে। বিল্ড সরঞ্জামগুলি ডাউনগ্রেড করার চেষ্টা করেন নি। (লক্ষ্য 15 কাজ করেনি)
থোমাসা 88

5
সম্পত্তিতে ম্যানিফেস্টে এবং টার্গেটে টার্গেটএসডিপি ভার্সন সেট করা আমার পক্ষে ১৯ টি কাজ করেছে
জলদীপ ক্যাটরে

83

ভ্যান কী বলেছে তা চেষ্টা করুন :

রাইট ক্লিক করুন, আপনার projectandroid toolsandroid support library

আশাকরি এটা সাহায্য করবে :)


19
এই সমাধানের জন্য আপনাকে ধন্যবাদ, মাত্র দুটি ক্লিক এবং সমস্যার সমাধান হয়েছিল !!!!! (যদিও আমার মেনুতে এটি ছিল "সমর্থন লাইব্রেরি যুক্ত করুন")
ক্রিস্টোফার

57

এখানেও একই সমস্যা। 18.1.1 টি সরঞ্জাম তৈরিতে প্রত্যাবর্তন, পুনরায় সূচনা Eclipse এবং এটি এটি স্থির করে।


3
হ্যাঁ, এটি স্থির করে দিয়েছে। যদিও ম্যানুয়ালি পুরানো 19.0.0 ডিরেক্টরি মুছতে হয়েছিল।
বীটস্ট্রা

এটি আমার জন্য এটিও স্থির করে, যদিও আমি 18.0.1
নিকট

1
আমি এই উত্তরটি ব্যবহার করেছি এবং আমাকে ফিরে যেতে হবে না: স্ট্যাকওভারফ্লো.com
জন

আমি সমস্ত প্রজেক্ট.প্রপার্টি এবং টার্গেটএসডিকে যাচাই করেছি। আমি ইন্টেলিজ আইডিইএ 13 কার্ডিয়ার সর্বশেষতম সংস্করণটি ব্যবহার করছি এবং প্রকল্পটির এসডিকে সংস্করণটিও খেলছি played আমার প্রকল্পের জন্য বিল্ড-সরঞ্জামগুলি আনইনস্টল করা 19.0.0 একমাত্র উপায়।
জেমস ওয়াল্ড

1
ধন্যবাদ। 18.1.1 টি সরঞ্জাম তৈরিতে ফিরে যাওয়া এবং 19 মুছে ফেলা আমার জন্য এটি স্থির করে। আমি ভেবেছিলাম আমি পাগল হয়ে যাচ্ছি
ড্যারেন

50

এই অতিরিক্ত লাইনটি যুক্ত করে আমি আমার সমস্যা প্রকল্পটি তৈরি করতে সক্ষম হয়েছি:

sdk.build.tools=18.1.1

... আমার প্রজেক্ট.প্রপার্টি ফাইলগুলিতে, যা প্রকল্প ফোল্ডারের মূলটিতে উপস্থিত রয়েছে। অন্যান্য সমস্ত পন্থাগুলি আমার কাছে ব্যর্থ বলে মনে হয়েছে।


আমি মনে করি এটি সমস্যার পিছনে অন্যতম কারণ। আমি কখনই আমার টার্গেটের এসডিকে 19 সংস্করণ ব্যবহার করিনি এবং এখনও সমস্যাটি আসছিল। সম্ভবত এসডিকে বিল্ডিংয়ের সরঞ্জামগুলি 19 এ সেট করা হয়েছিল যা ফেরত ফিরতে হয়েছিল
সৌরভ

ব্যবহৃত লক্ষ্য ব্যবহৃত বিল্ডটুলস সংস্করণ নির্ধারণ করে না।
ফ্লো

আমি সর্বশেষ সমর্থন লাইব্রেরি যুক্ত করেছি এবং প্রকল্পের বৈশিষ্ট্যগুলিতে এই লাইনটি যুক্ত করেছি এবং আমার সমস্যাটি স্থির হয়ে গেছে ... ধন্যবাদ
স্পিডিনোমডস

আমি এই কাজ অবাক; এটি এওএসপি উত্সে যেমন ছিল sdk.buildtoolsনা sdk.build.tools, এবং এটিই আমার পক্ষে কাজ করেছিল।
যোনী সম্মান

7

প্রকল্পে ডান ক্লিক করুন >> সম্পত্তি >> অ্যান্ড্রয়েড >> এপিআই লেভেল 18 আমার পক্ষে কাজ করেছে। তবে আমি এটি করার আগে আমি প্রকল্প >> অ্যান্ড্রয়েড সরঞ্জামসমূহ >> সমর্থন লাইব্রেরি যুক্ত এবং পুনরায় সূচনা Eclipse এ ডান ক্লিক করেছি । আপনার নির্বাচিত এপিআই স্তরটি নিয়ে আপনার চারপাশে খেলতে হতে পারে ।


3
18 এর নীচে API এর স্তর সম্পর্কে কী? আমরা 18 স্তরের নীচে অ্যাপ্লিকেশনটি কীভাবে চালাতে পারি?
জয়েশ

আমি প্রকল্প-> অ্যান্ড্রয়েড সরঞ্জাম-> সমর্থন লাইব্রেরি যুক্ত করতে হয়েছিল এবং এটি 19.0.1 সমর্থন লাইব্রেরি এডিটি ইনস্টল করে। এরপরে এটি এপকে ফাইন জেনারেট করে।
ব্যবহারকারী 914425

7

নতুন এসডিকে ইনস্টল করার পরে, আপনার প্রকল্পের ফাইলের আওতায় একটি নতুন ফোল্ডার, "অ্যান্ড্রয়েড নির্ভরতা" রয়েছে। যদি আপনি ডান ক্লিক করেন এবং এটি বিল্ড পাথ থেকে সরিয়ে ফেলেন, আপনি আবার আপনার প্রকল্পটি তৈরি করতে সক্ষম হবেন।


আমি লক্ষ্য করেছি যে এই ফোল্ডারটির ফলে সদৃশ জেআর ইস্যু হবে। তবে এটি মুছে ফেলা আমার সমস্যার সমাধান করেনি।
Salsero69

@ সালসারো 69 আপনি কি আপনার প্রকৃত প্রকল্পের রেফারেন্স হিসাবে একটি গ্রন্থাগার প্রকল্প ব্যবহার করছেন?
মহেন্দ্র লিয়া

5

হালনাগাদ

right click your project > android tools > android support library

আপনার প্রকল্পটি পরিষ্কার করুন এবং তৈরি করার চেষ্টা করুন।


4

আমি সংশোধনের 19 শুধু আপডেট এডিটি আপডেট করতে ভুলবেন না পরে একই সমস্যা ছিল https://dl-ssl.google.com/android/eclipse/ । এর পরে, আমি সর্বশেষ সংস্করণটি দিয়ে প্রকল্পটি তৈরি করতে সক্ষম হয়েছি।


3

সমর্থন গ্রন্থাগারটি ডাউনলোড না করে বা বিল্ড সরঞ্জামগুলিকে 18.1.1 এ রূপান্তর না করেই আমি এই সমস্যাটি সমাধান করেছি। আমি কেবল এপিআই স্তরটি 16+ এ পরিবর্তন করেছি এবং সমস্যাটি বিলুপ্ত হয়ে গেছে । আশা করি এটি সাহায্য করবে।


আপনি কীভাবে এপিআই স্তরটি 16 এ পরিবর্তন করেছেন?
পিটার মর্টেনসেন

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

3

অ্যান্ড্রয়েড স্টুডিও 0.4.0 এবং গ্রেডল 1.9 এ আপগ্রেড করার পরে এখানে অন্য কোনও সমাধান আমার পক্ষে কাজ করে নি।

বিল্ড সরঞ্জামগুলি 19.0.1 ডাউনলোড করে এবং আমার বিল্ড.gradle ফাইলগুলিতে নিম্নলিখিত লাইনটি আপডেট করে আমি সমস্যার সমাধান করেছি:

buildToolsVersion '19.0.0'

প্রতি

buildToolsVersion '19.0.1'

হ্যাঁ, এই সমস্যাটি 19.0.1 এ স্থির বলে মনে হচ্ছে। "পিঁপড়া ডিবাগ" দিয়েও দুর্দান্ত কাজ করেছেন।
রবার্ট

2

ইন্টেলিজ আইডিইএ 13 এর সাথে যে সমস্যার মুখোমুখি হচ্ছে তাদের জন্য বিল্ড সরঞ্জাম 19 আনইনস্টল করুন।


2

19উভয় project.propertiesএবং AndroidManifest.xmlপিপীলিকার সাথে লক্ষ্য সংস্করণ সহ একই সমস্যা ছিল ।

এটি স্থির করে:

  • আনইনস্টল হয়েছে Android SDK Build-Tools 19.0.1
  • ইনস্টল Android SDK Build-Tools 19.0.2

আমার মনে হয় @ আল-কাঠিরি-খালিদ স্পট করছে। সমস্যাটি কেবল বিল্ড সরঞ্জামগুলিতে এপিআই স্তরের সমর্থন হারিয়েছে বলেই।


1

আমার প্রকল্পটি সমর্থন লাইব্রেরি ব্যবহার না করেও আমার একই সমস্যা ছিল। প্রকল্পে লাইবস / অ্যান্ড্রয়েড-সাপোর্ট-ভি 4.জার যুক্ত করা v19 থেকে বিল্ড সরঞ্জামগুলি ফিরিয়ে আনার প্রয়োজন ছাড়াই সমস্যার আশপাশে কাজ করেছিল।


1

আমি এই সমস্যাটি সমাধান করেছি। প্রকল্পের বৈশিষ্ট্যগুলির ফাইলে কেবল এই পরিবর্তনটি করুন:

target=android-18
sdk.build.tools=18.1.1

এবং ম্যানিফেস্ট ফাইলটিতে:

uses-sdk android:minSdkVersion="8"
android:targetSdkVersion="18"

0

প্রকল্পে লাইব্রেরি ফাইল যুক্ত করুন .. প্রকল্প-> ডান ক্লিক করুন-> বৈশিষ্ট্য-> অ্যান্ড্রয়েড-> গ্রন্থাগার-> ক্লিক করুন এবং যোগ করুন গ্রন্থাগার প্রকল্প নির্বাচন করুন এবং প্রয়োগ করুন এবং ঠিক আছে .. তারপরে, প্রকল্পটি পরিষ্কার করুন এবং আবার চালনা করুন .. আপনি যদি গ্রহনটি আবার চালু করতে চান ..

এবং এছাড়াও, কখনও কখনও অ্যান্ড্রয়েড এসডিকে বিল্ড সরঞ্জামগুলি আপডেট করতে হবে ..


0

কি আমার জন্য কাজ ছিল: আমি কি আমার প্রকল্পের রুট থেকে project.properties ফাইল খোলা এবং পরিবর্তন target=android-8করার জন্যtarget=android-17


0

ডেক্স ত্রুটি থেকে java.nio.BufferOverflowException এর অর্থ এই স্তরের জন্য আপনার কাছে সমর্থনকারী এপিআই নেই তাই বিল্ডটি ব্যর্থ হয়, আপনি এটি ঠিক করতে পারেন এমন অনেকগুলি উপায় রয়েছে।

আপনার ম্যানিফেস্ট ফাইলটি ব্যবহার করে -Sdk অ্যান্ড্রয়েড পরীক্ষা করুন: minSdkVersion = "4" এবং অ্যান্ড্রয়েড: টার্গেটএসডিকি ভার্সন = "14"

নীচের যে কোনওটি সমস্যার সমাধান করবে: -

  • প্রয়োজনীয় এপিআই স্তরটি ডাউনলোড করুন (এটি হয়ত সময় নিতে পারে) এবং আপনার অ্যাপ্লিকেশনটি আবার চালান
  • দ্রুত নোংরা ফিক্স আপনার প্রজেক্টের টার্গেটটি প্রজেক্টে প্রের্টে আপনার নতুন টার্গেট টার্গেট = অ্যান্ড্রয়েড -4 এ পরিবর্তন করুন
  • দ্রুত সাফ ফিক্স, আপনার ম্যানিফেস্টে এসডিকি ভার্সন পরিবর্তন করুন এবং আপনার প্রকল্পে পরিবর্তনগুলি যুক্ত করতে আপনার প্রকল্প সাফ করুন p প্রপার্টি (আমার প্রিয়)

0

আমি পূর্ববর্তী অ্যান্ড্রয়েড এসডিকে এবং গ্রহণটি সরিয়েছি । আমি ADT বান্ডেল ইনস্টল করেছি এবং এটি কাজ করে ...

এটি ডেক্সে বাফার ওভারফ্লোর সমস্যাটি সংশোধন করেছে যা আমার এপিআই 19 পাওয়ার পরে শুরু হয়েছিল I


আমি কোথা থেকে অ্যাডটি বান্ডেল ইনস্টল করতে পারি?
জয়েশ

0

প্রকল্প >> বৈশিষ্ট্য >> অ্যান্ড্রয়েড এ ডান ক্লিক করুন এবং 15 এর চেয়ে বেশি এপিআই স্তর নির্বাচন করুন

অথবা

প্রকল্পে ডান ক্লিক করে এবং প্রকল্প >> বৈশিষ্ট্য >> অ্যান্ড্রয়েড >> যোগ করে আপনার প্রকল্পে গুগল-প্লে-পরিষেবাদি_লিব যুক্ত করুন

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