অ্যান্ড্রয়েড: NDK এর কোনও সংস্করণ অনুরোধ করা সংস্করণটির সাথে মেলে না


53

অ্যান্ড্রয়েড গ্রেডল প্লাগইনে আপডেট হওয়ার পরে 3.6.0(ফেব্রুয়ারী 24, 2020 প্রকাশিত হয়েছে), বেশ কয়েকটি প্রকল্প স্বতন্ত্রভাবে ব্যর্থ হওয়া শুরু করেছিল:

No version of NDK matched the requested version 20.0.5594570. Versions available locally: 21.0.6113669

পুরানো প্রত্যাশিত এনডিকে সংস্করণ ইনস্টল করে স্থানীয়ভাবে এটি "সমাধান" করা বেশ সহজ:

sdkmanager 'ndk;20.0.5594570'

যাইহোক, আমার প্রশ্ন: এই পুরানো সংস্করণটি কোথায় এবং কীভাবে নির্দিষ্ট করা হয়েছে? এবং এটি কীভাবে আপডেট করব যাতে এটি সর্বশেষতম সংস্করণটির সাথে মেলে 21.0.6113669?


10
এবং গিথুব সিআই-তেও ব্যর্থতা তৈরি করুন।
কেওয়াইএইচএসজিককোড

আমার জন্যও একই. এবং যদি আমি সেই এনডিকে ইনস্টল করি, বা এর অবস্থানটি নির্দিষ্ট করে দিই তবে আমি আমার অ্যাপ্লিকেশনটি অসন্তুষ্ট
লিঙ্কেরার

1
বর্তমানে গিথুব সিআই এখন আমার প্রকল্পের জন্য আবার কাজ করে: github.com/KYHSGeekCode/Android-Disassembler/blob/…
KYHSGeekCode

এবং এটি চেনাশোনা সিআই তেও ব্যর্থ হয়।
এইচএক্স_উবান্বিত

উত্তর:


26

বিকল্প 1:

আপনি প্রজেক্ট স্ট্রাকচার ডায়ালগে আপনার স্থানীয়ভাবে ইনস্টল করা এনডিকে কেবল নির্বাচন করতে পারেন

আপনি ক্লিক করে File > Project Structure...বা হটকি CTRL + ALT + SHIFT + S(উইন্ডোতে) টিপে প্রকল্প স্ট্রাকচার ডায়ালগটি খুলতে পারেন

প্রজেক্ট স্ট্রাকচার ডায়ালগটি একবার খোলা হয়ে গেলে, এসডিকে লোকেশনে যান এবং আপনার স্থানীয়ভাবে ইনস্টল করা এনডিকে অ্যান্ড্রয়েড এনডিকে অবস্থানের অধীনে সংস্করণ নির্বাচন করুন । সাধারণত এটি আপনার ব্যবহারকারীর ফোল্ডারে কোথাও ইনস্টল করা থাকে তবে \AppData\Local\Android\Sdk\ndk\%ndk version%কমপক্ষে উইন্ডোজের জন্য।

প্রজেক্ট স্ট্রাকচার ডায়ালগের স্ক্রিনশট - অ্যান্ড্রয়েড স্টুডিও ৩.6 বিল্ড # এআই-192.7142.36.36.6200805, 12 ফেব্রুয়ারী, 2020 এ নির্মিত

বিকল্প 2:

বিকল্প 1 করা আপনার local.propertiesপক্ষে আপনার ফাইল সম্পাদনা করবে এবং বেশিরভাগ ক্ষেত্রে কাজ করবে। তবে আপনি যদি এই অফিসিয়াল গাইড অনুসারে প্রকল্পটি নির্মাণ করেন এমন সমস্ত মেশিনগুলিতে আপনি যদি একটি সামঞ্জস্যপূর্ণ এনডিকে সংস্করণ ব্যবহার করতে চান তবে আপনি এটি আপনার মডিউল গ্রেড স্ক্রিপ্ট থেকে কনফিগার করতে পারেন। কেবল ndkVersionআপনার মডিউল গ্রেড স্ক্রিপ্টের android{}ব্লকের মধ্যে এটি যুক্ত করুন।

android {
    ndkVersion "major.minor.build"
}

আপনি যে NDK সংস্করণটি ব্যবহার করতে চান তার সাথে ডাবলকোটের মধ্যে স্ট্রিং প্রতিস্থাপন

বিকল্প 3:

আপনি যদি কোনও নির্দিষ্ট মেশিনে নির্মিত সমস্ত প্রকল্প একই জাতীয় এনডিকে সংস্করণটি ব্যবহার করতে চান, আপনি ANDROID_NDK_HOMEএনডিকে ফোল্ডারের পথের সাথে পরিবেশের পরিবর্তনশীলও সেট করতে পারেন ।


1
অপশন 2 ব্যবহার করে যদি আমি সর্বশেষ ndkVersion ব্যবহার করতে চাই?
KYHSGeekCode

@ কেওয়াইএইচএসজিককোড আপনি ডাবলকোটের মধ্যে থাকা স্ট্রিংটি আপনি যে এনডিকে ব্যবহার করতে চান তার সাথে প্রতিস্থাপন করতে পারেন। নিশ্চিত হয়ে নিন যে আপনি সেই নির্দিষ্ট সংস্করণটি ইনস্টল করেছেন।
সুবারু তাশিরো

5
মানে, আমি কি সর্বশেষ সংস্করণটি (ম্যানুয়ালি নির্দিষ্ট করে দিচ্ছি না) ব্যবহার করতে পারি?, এর মতো কিছু ব্যবহার করে$NDK_LATEST_VERSION
KYHSGeekCode

20

আমি এই মধ্যে চালানো

NDK এর কোনও সংস্করণ অনুরোধিত সংস্করণটির সাথে মেলে না 20.0.5594570। স্থানীয়ভাবে সংস্করণগুলি উপলব্ধ: 21.0.6113669 69

বিকল্প 1:

প্রজেক্ট স্ট্রাকচার ডায়ালগের কাজগুলিতে আপনি কেবল স্থানীয়ভাবে ইনস্টল করা এনডিকে নির্বাচন করতে পারেন ! এখানে চিত্র বর্ণনা লিখুন

তবে কেবলমাত্র স্থানীয় বিল্ডগুলির জন্য বৈধ, এটি সিআইয়ের জন্য আমার একটি সমাধান দরকার

বিকল্প 2:

এটি কেবল তখনই কাজ করে, যখন আপনি এটি প্রতিটি ব্যবহৃত মডিউলটিতে উল্লেখ করেন

android {
    compileSdkVersion 28
    ndkVersion "21.0.6113669"
    ...
}

এখানে https://github.com/hannesa2/panoramagl/pull/17/ এ পরিবর্তনগুলি পরীক্ষা করা যায় না বলে মনে হচ্ছে https://github.com/hannesa2/panoramagl/pull/17/files#diff-cff4e8c294a5dc5e76308662ae1ddcacR6-R7

বিকল্প 3:

export ANDROID_NDK_HOME=/Users/{my-user}/Development/adt/sdk/ndk/21.0.6113669

কাজ করে!


অপশন 2 এর অর্থ কী? এই পদ্ধতির সাথে আপনি কী সমস্যার মুখোমুখি হচ্ছেন? আপনি কি এই পৃষ্ঠার নীচে একবার দেখেছেন? বিকাশকারী.অ্যান্ড্রয়েড / স্টুডিও
প্রজেক্টগুলি /

@ সুবারুতাশিরো দেখুন, এই পরিবর্তন github.com/marianmoldovan/panoramagl/pull/17/… নিয়ে github.com/marianmoldovan/panoramagl/pull/17/… কাজ করছে না বলে মনে হচ্ছে বা কেন জানি না
হ্যানস আছ

স্ট্রেঞ্জ। আমি তোমার করে দেখতে পাবেন আপনার দ্বারা নির্দিষ্ট করা 21.0.6113669কিন্তু বিল্ড লগ বলছেন অনুরোধ সংস্করণ 20.0.5594570। আপনি একটি ndk_locator_record.jsonফাইল সন্ধান করতে পারেন ? অনুরোধ করা এনডিকে সংস্করণটি কীভাবে সমাধান করেছে সে সম্পর্কিত তথ্য সেই ফাইলটিতে রয়েছে।
সুবারু তাশিরো

@ সুবারতুশিরো আমি এটি অনুসন্ধান করি, এবং এরকম কোনও ফাইল নেই। দেখুন আমি এটি ধাপে অনুসন্ধান করছি " gdub.com/hannesa2/panoramagl/pull/17/… এর
হ্যান্স আঃ

বিকল্প 3 অটোমেশন সরঞ্জামগুলির জন্য দুর্দান্ত, ধন্যবাদ!
ভায়োলেট জিরাফ

14

আমি একই সমস্যা আছে। আমি এসডিকে ম্যানেজারের মাধ্যমে এটি এসডিকে সরঞ্জামগুলির অধীনে সমাধান করেছি, ক্লিক করুন Show Package Detailsএবং তারপরে এনডিকে (পাশাপাশি পাশাপাশি) স্ক্রোল করুন এবং আপনার প্রয়োজনীয় সংস্করণটি টিক দিন এবং প্রয়োগ করুন। নীচে চিত্র দেখুন:

এনডিকে সংস্করণ ইনস্টলের জন্য এসডিকে সরঞ্জামগুলিতে চিত্রের লিঙ্ক

যে কারও কাছে আমার প্রশ্ন হ'ল এনডিকে দরকার নেই এমন প্রকল্পগুলির জন্য আমাদের এখন কেন এটি প্রয়োজন? দেখা যাচ্ছে যে একটি নির্ভরতার জন্য আমি কাজ করি এমন প্রকল্পের এনডিকে একটি পূর্ব বিদ্যমান প্রয়োজন!


2

আপনার বিল্ড.gradle, প্রকল্প স্তরের ভিতরে আপনার ক্লাসপাথ সংস্করণটি 3.5.0 তে পরিবর্তন করুন।

dependencies {
        classpath 'com.android.tools.build:gradle:3.5.0'
}

আমার একই সমস্যা আছে এবং এটি সমাধান হয়েছে।


3
ঠিক আছে, এটি আসলে কোনও সমাধান নয়, তবে সর্বোত্তমভাবে কাজ করা। আমি ইতিমধ্যে উল্লেখ করেছি যে (বা পরে) আপডেট করার সময় ত্রুটি ঘটতে শুরু হয়েছিল 3.6.0। বিটিডব্লিউ, আপনার এটিকে ডাউনগ্রেড করার দরকার নেই 3.5.0। সংস্করণ 3.5.3হিসাবে ভাল কাজ করে।
ফ্রাইডারব্লিউমলে

2

আমার একই সমস্যা হয়েছিল, কিছুক্ষণ পরে আমি একটি অস্থায়ী সমাধান পেয়েছি। ndkফোল্ডারের নাম পরিবর্তন করুন ndk-bundle। আপনার প্রকল্পগুলিতে local.propertiesফাইলটিতে যান এবং এই লাইনটি আগে যুক্ত করুন sdk.dir:

ndk.dir=<path to your ndk folder>

এটা আমার:

ndk.dir=G\:\\SDK\\ndk-bundle
sdk.dir=G\:\\SDK

আমি আশা করি এটি আপনাকে সাহায্য করবে


খুশী হলাম। এইটা কাজ করে. Sdk.dir বিকল্পটির জন্য বিল্ড সিস্টেমটি ইতিমধ্যে এই লাইনটি স্বয়ংক্রিয়ভাবে উত্পন্ন করতে পারে এমন কোনও উপায় আপনি কী জানেন?
নিকোলাস দুসার্ট

আপনি নাম পরিবর্তনের পরিবর্তে এনডিকে ফোল্ডারে পাথ নির্দিষ্ট করতে পারেন। স্ট্রিং ndk.dir=G\:\\...\\Sdk\\ndk\\21.0.6113669আমার জন্য কাজ করে।
আর্টেম মোস্তায়াভ

0

গ্রেডে আপগ্রেড করার পরে: 3.6.0 (বা তারপরে) সিতে অবস্থিত এনডিকে এবং এনডিকে-বান্ডিল ফোল্ডারগুলির নাম পরিবর্তন বা মুছতে চেষ্টা করুন: \ ব্যবহারকারীরা u <ব্যবহারকারী> \ অ্যাপডাটা \ স্থানীয় \ অ্যান্ড্রয়েড \ এসডিকে

ক্রেডিট এতে যায়: https://github.com/gradle/gradle/issues/12440#issuecomment-601214647

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