android - ২০১৮ - সূর্যগ্রহণ ২০১৯
সমস্ত এসডিকে লাইসেন্স স্বয়ংক্রিয়ভাবে গ্রহণ করুন (20)
গ্রেডেল অ্যান্ড্রয়েড প্লাগইনগুলি 2.2-alpha4 :
গ্রেডেল নিখোঁজ এসডিকে প্যাকেজগুলি ডাউনলোড করার চেষ্টা করবে যা কোনও প্রকল্প নির্ভর করে
যা আশ্চর্যজনকভাবে দুর্দান্ত এবং এটি জ্যাকওয়ার্টন প্রকল্প হিসাবে পরিচিত ছিল ।
তবে, এসডিকে গ্রন্থাগারটি ডাউনলোড করতে আপনার দরকার: লাইসেন্স চুক্তিগুলি গ্রহণ করুন বা গ্রেডল আপনাকে বলে:
আপনি নিম্নলিখিত এসডিকে উপাদানগুলির লাইসেন্স চুক্তিগুলি গ্রহণ করেন নি: [অ্যান্ড্রয়েড এসডিকে বিল্ড-সরঞ্জাম 24, অ্যান্ড্রয়েড এসডিকে প্ল্যাটফর্ম 24]। আপনার প্রকল্পটি তৈরির আগে আপনাকে লাইসেন্স চুক্তিগুলি গ্রহণ করতে হবে এবং অ্যান্ড্রয়েড স্টুডিও এসডিকে ম্যানেজার ব্যবহার করে নিখোঁজ উপাদানগুলির ইনস্টলেশন সম্পূর্ণ করতে হবে। বিকল্পভাবে, লাইসেন্স চুক্তিগুলি কীভাবে একটি ওয়ার্কস্টেশন থেকে অন্য ওয়ার্কে স্থানান্তর করতে হয় তা শিখতে, http://d.android.com/r/studio-ui/export-licenses.html যান
এবং এটি একটি সমস্যা কারণ
gradle build
করার সময় আমি সমস্ত
gradle build
নির্ভরতা ইনস্টল করতে পছন্দ করব।
আমি সমস্ত লাইসেন্স স্বয়ংক্রিয়ভাবে গ্রহণের জন্য একটি সমাধান খুঁজছি। গ্রেড লিপি হতে পারে? তোমার কোন ধারনা আছে ?
ধন্যবাদ!
[Edit]
একটি সমাধান কার্যকর করা ছিল:
android update sdk --no-ui --filter build-tools-24.0.0,android-24,extra-android-m2repository
এবং এটি ম্যানুয়ালি ইনস্টল করুন তবে এটি করা গ্রেডের নতুন বৈশিষ্ট্যের উদ্দেশ্য।
[সম্পাদনা 2]
Sdkmananger ব্যবহার করা একটি আরও ভাল সমাধান:
yes | sdkmanager --licenses
2018 সালের হিসাবে এই সমস্যাটি যে কারও জন্যই রয়েছে ঠিক আছে The উপরের উত্তরগুলি আমার পক্ষে মোটেও কার্যকর হয়নি। ডিআইডি-র কাজটি অ্যান্ড্রয়েড এসডিকে খুলছিল - টুল বারে ডাউনলোড বোতামটি ক্লিক করে এবং উপযুক্ত প্যাকেজগুলি নির্বাচন করে। তারা ডাউনলোড শেষ করার পরে, এটি আপনাকে লাইসেন্স চুক্তি স্বীকার করতে দেবে।
AndroidSDK অবশেষে লাইসেন্স গ্রহণ করতে পারে।
yes | sdkmanager --licenses
সম্পাদনা করুন:
@ মোওকস, ম্যাকোস-এর মন্তব্যে যেমন উল্লেখ করেছেন, আপনি এটি করতে পারেন
yes | sudo ~/Library/Android/sdk/tools/bin/sdkmanager --licenses
উইন্ডোতে @ ফো, @ মাইকিব্রিজ এবং @ নোটিডার্টের মন্তব্যে যেমন উল্লেখ করা হয়েছে, আপনি এটি করতে পারেন
cmd.exe ""/K"%LocalAppData%\Android\sdk\tools\bin\sdkmanager.bat --licenses"
আগে জাভা ইনস্টল করতে ভুলবেন না
আপনি নিম্নলিখিত আদেশটি কার্যকর করে সমস্ত লাইসেন্স গ্রহণ করতে পারেন:
sdkmanager --licenses
এটি আপনাকে স্বীকার না করা প্রতিটি লাইসেন্সের মাধ্যমে আপনাকে অনুরোধ জানাবে এবং এগুলির প্রতিটি গ্রহণের জন্য আপনি কেবল
y
তে প্রবেশ করতে পারবেন।
আপনি যদি
tools/bin/sdkmanager --licenses
ব্যবহার করেন
tools/bin/sdkmanager --licenses
আপনার এখনও একটি মানুষের ইন্টারঅ্যাকশন হওয়া দরকার।
আমার গিটল্যাব সিআই ব্যবহার করতে আমার সমস্যা হচ্ছে।
এটি আমার সমাধান:
wget --quiet --output-document=tools.zip https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip
unzip -qq tools.zip
echo y | tools/bin/sdkmanager "platforms;android-25"
echo y | tools/bin/sdkmanager "platform-tools"
echo y | tools/bin/sdkmanager "build-tools;25.0.2"
echo y | tools/bin/sdkmanager "extras;android;m2repository"
echo y | tools/bin/sdkmanager "extras;google;m2repository"
কোনও প্রশ্ন থাকলে
echo y
হ্যাঁ বলবে, তবে আপনাকে ইনস্টল প্যাকেজ প্রতি এক লাইন করা দরকার
আমি
alpha5
প্রাকদর্শন দিয়ে এর
alpha5
হয়েছি।
জ্যাক ওয়ার্টন আমাকে ইঙ্গিত করেছেন যে আপনি বর্তমানে ব্যবহার করতে পারেন
mkdir -p "$ANDROID_SDK/licenses"
echo -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > "$ANDROID_SDK/licenses/android-sdk-license"
echo -e "\n84831b9409646a918e30573bab4c9c91346d8abd" > "$ANDROID_SDK/licenses/android-sdk-preview-license"
আপনার মেশিনে বর্তমান
$ANDROID_HOME/license
ফোল্ডারটি পুনরায় তৈরি করতে।
প্রক্রিয়াটি ত্রুটি সংযোগের লিঙ্কে বর্ণিত হিসাবে একই ফলাফল হবে (
http://tools.android.com/tech-docs/new-build-system/license
)।
হ্যাশগুলি লাইসেন্স পাঠ্যের sha1s, যা আমি কল্পনা করেছি পর্যায়ক্রমে আপডেট করা হবে, সুতরাং এই কোডটি কেবল এত দিন কাজ করবে :)
এবং এটি ম্যানুয়ালি ইনস্টল করুন তবে এটি করা গ্রেডের নতুন বৈশিষ্ট্যের উদ্দেশ্য।
আমি প্রথমে অবাক হয়ে গিয়েছিলাম যে এই বাক্সটি কার্যকর হয়নি, এমনকি যখন আমি
android
সরঞ্জামের মাধ্যমে নামকরণকৃত উপাদানগুলির জন্য লাইসেন্সগুলি গ্রহণ করেছিলাম, তবে এটি এসএসের ভিতরে এর এসডিকে পরিচালককে আমার দিকে চিহ্নিত করেছিল যা
/licenses
ফোল্ডারটি তৈরি করে।
আমার ধারণা, সরকারী সরঞ্জামগুলি আইনি কারণে এই পদক্ষেপটি এড়াতে চাইবে না।
রিলিজ নোটগুলি পুনরায় পড়া এটিতে উল্লেখ করা হয়েছে
এসডিকে অটো-ডাউনলোড: গ্রেডল কোনও প্রকল্পের উপর নির্ভর করে নিখোঁজ এসডিকে প্যাকেজগুলি ডাউনলোড করার চেষ্টা করবে।
যার অর্থ এই নয় যে এটি কাজ করবে যদি আপনি অ্যান্ড্রয়েড সরঞ্জামগুলি ইনস্টল না করে থাকেন এবং ইতিমধ্যে সর্বশেষতম লাইসেন্স (গুলি) গ্রহণ করেছেন।
সম্পাদনা: এই বলে যে, এসডিকে এএস-এর সাথে সংযুক্ত না করা পর্যন্ত এটি আমার পরীক্ষার গুবুন্টু বাক্সে কাজ করে না। সিআই যদিও ঠিক কাজ করে - পার্থক্য কী তা নিশ্চিত নয় ...
আমি এখানে নেভিগেট:
/usr/lib/android-sdk/licenses
এবং আমি টার্মিনাল টাইপ করেছি:
echo -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > $ANDROID_SDK/licenses/android-sdk-license"
রুট অনুমতি সহ। এবং এটি এখন আমার জন্য কাজ করে।
আমি দৌড়াই
#react-native run-android
টার্মিনাল থেকে এবং সমস্যাটি পূরণ। ম্যানুয়ালি জন্য, অ্যান্ড্রয়েড স্টুডিওতে যান -> অ্যান্ড্রয়েড এসডিকে -> এসডিকে প্ল্যাটফর্ম প্যাকেজগুলি বিশদ প্রদর্শন ক্লিক করুন এবং দেখুন:
+ Google APIs
+ Android SDK Platform 23
+ Intel x86 Atom_64 System Image
+ Google APIs Intel x86 Atom_64 System Image
প্যাকেজ ইনস্টল করার সময়, লাইসেন্স গ্রহণ করুন>> পরীক্ষা করে সমস্যার সমাধান করতে পারে।
উইন্ডোগুলির জন্য, সিএমডি খুলুন এবং কমান্ডটি চালিয়ে
bin
ডিরেক্টরিতে প্রবেশ করুন:
cd C:\Users\username\AppData\Local\Android\sdk\tools\android\Sdk\tools\bin
তারপরে
sdkmanager --licenses
কমান্ড চালান, এটি লাইসেন্সগুলি গ্রহণ করতে বলে।
এখানে আমার ডকার সেটআপ আছে।
আপনি একটি সাধারণ লিনাক্স পরিবেশ থেকে অনুসরণ করতে পারেন।
yes |
নোট করুন
এবং
--licenses --sdk_root=${ANDROID_HOME}
ধারাগুলি।
মনে হচ্ছে
sdkmanager --update
চুক্তিগুলি
sdkmanager --update
, তাই
yes |
দু'বার হাজির হয়
FROM openjdk:8
# Install dev-essential(gnumake)
RUN apt update
RUN apt install -y build-essential
# Set ENV
ENV SDK_URL="https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip" \
ANDROID_HOME="/usr/local/android-sdk" \
ANDROID_VERSION=28 \
ANDROID_BUILD_TOOLS_VERSION=28.0.3 \
GRADLE_VERSION=4.10.3 \
NDK_VERSION=r16b
# Download Android SDK
RUN mkdir "$ANDROID_HOME" .android \
&& cd "$ANDROID_HOME" \
&& curl -o sdk.zip $SDK_URL \
&& unzip sdk.zip \
&& rm sdk.zip \
&& yes | $ANDROID_HOME/tools/bin/sdkmanager --licenses --sdk_root=${ANDROID_HOME}
# Install Android Build Tool and Libraries
RUN $ANDROID_HOME/tools/bin/sdkmanager --update
RUN yes | $ANDROID_HOME/tools/bin/sdkmanager "build-tools;${ANDROID_BUILD_TOOLS_VERSION}" \
"platforms;android-${ANDROID_VERSION}" \
"platform-tools" --sdk_root=${ANDROID_HOME}
# Install Gradle
RUN wget https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-all.zip
RUN mkdir /opt/gradle
RUN unzip gradle-${GRADLE_VERSION}-all.zip -d /opt/gradle
ENV PATH=${PATH}:/opt/gradle/gradle-${GRADLE_VERSION}/bin
# Install NDK
RUN wget https://dl.google.com/android/repository/android-ndk-${NDK_VERSION}-linux-x86_64.zip
RUN mkdir /opt/ndk-bundle
RUN unzip android-ndk-${NDK_VERSION}-linux-x86_64.zip -d /opt/ndk-bundle
ENV PATH=${PATH}:/opt/ndk-bundle
RUN mkdir /application
WORKDIR /application
এটি আমার ত্রুটি সমাধান করেছে
echo yes | $ANDROID_HOME/tools/bin/sdkmanager "build-tools;25.0.2"
কমান্ড লাইন এসডিকে নিয়ে সমস্যা রয়েছে তাদের জন্য, আপনি যে লাইসেন্সগুলি স্বীকার করেছেন সেগুলি এটি খুঁজে পাবে না কারণ তারা
$ANDROID_HOME/licenses
চেয়ে পৃথক স্থানে লিখিত হয়েছে যা তাদের দরকার।
আমি খুঁজে পেয়েছি সবচেয়ে সহজ সমাধানটি ছিল এই জাতীয় লাইসেন্সগুলি গ্রহণ করা:
$ANDROID_HOME/bin/sdkmanager --licenses --sdk_root=$ANDROID_HOME
দ্রষ্টব্য: এটি ধরে নিয়েছে যে আপনি
ANDROID_HOME
যেখানেই ইনস্টল করা আছে সেদিকে ইঙ্গিত করার জন্য আপনি
ANDROID_HOME
সেট করেছেন।
কর্ডোভা ব্যবহার করার সময় আমারও একই ত্রুটি ছিল।
সমস্যাটি এই কারণে হয়েছিল যে আমি অ্যান্ড্রয়েড স্টুডিওর মাধ্যমে এবং অ্যাপটি ইনস্টল করে অ্যান্ড্রয়েড-এসডিকে অ্যাডবি দিয়ে অ্যান্ড্রয়েড এসডিকে
apt install android-sdk adb
।
এবং কর্ডোভা আমার হোম ডিরেক্টরিতে থাকা ফাইলগুলির পরিবর্তে অ্যাপের মাধ্যমে ইনস্টল করা ফাইলগুলি কল করছিল।
এটি একবার কাজ করে যখন আমি ব্যাডে এসডিকে যাত্রা শুরু করেছি:
# Change path
export ANDROID_HOME="$HOME/Android/Sdk/"
echo "Android home = $ANDROID_HOME"
# Accept licenses
eval "${ANDROID_HOME}/tools/bin/sdkmanager --licenses"
# Run Cordova
cordova build android
তারপরে আমি সেই সিস্টেম ফাইলগুলি সরিয়ে ফেললাম যা আর ব্যবহার করা হয়নি:
apt remove android-sdk adb
।
নতুন
sdkmanager
ইউটিলিটির জন্য:
yes | $ANDROID_HOME/tools/bin/sdkmanager "build-tools;24.0.3"
হ্যাঁগুলির মধ্যে কিছুটা বিলম্ব রয়েছে, যাতে আদেশটি কিছুক্ষণের জন্য প্রদর্শিত লাইসেন্সের সাথে ঝুলতে পারে তবে এটির জন্য মানুষের হস্তক্ষেপের প্রয়োজন হয় না।
নোট করুন যে বর্তমানে এই প্রশ্নে যে কেউ আসছেন তার জন্য, বিল্ড-সরঞ্জাম-24.0.2 হ'ল (আমার মনে হয়) এখন অপ্রচলিত হিসাবে বিবেচিত, সুতরাং আপনি পাবেন:
Error: Ignoring unknown package filter 'build-tools-24.0.2'
তাদের ইনস্টল করার পরামর্শ দেওয়া হয়েছে এমন বিভিন্ন কমান্ড চালানোর সময়।
সমাধানটি যুক্ত করুন - সমস্ত:
android update sdk --no-ui --all --filter "build-tools-24.0.2"
এছাড়াও আপনি যদি 32 বিট লিনাক্সে থাকেন তবে বিল্ড সরঞ্জামগুলির 23.0.1 এর পরে সমস্ত কিছু কেবল 64 বিট , তাই চলবে না। 32 বিট ব্যবহারকারী 23.0.1 এ আটকে আছে, পরবর্তী বিল্ড সরঞ্জামগুলি পাওয়ার একমাত্র উপায় 64৪ বিবিটে স্যুইচ করা।
প্রতিক্রিয়াশীল নেটিভ অ্যাপ্লিকেশনগুলির জন্য:
যদি আপনার উপর কোনও রেএটিভ নেটিভ অ্যাপ্লিকেশনটির জন্য সমস্যা হয় তবে উপরের উল্লিখিত পদক্ষেপগুলি ছাড়াও, আপনার অ্যাপ্লিকেশনটির অ্যান্ড্রয়েড ডিরেক্টরিতে (অ্যাপনাম / অ্যান্ড্রয়েড) লোকাল.প্রপার্টি ফাইল রয়েছে যা আপনার 'এসডিকে' ডিরেক্টরিতে নির্দেশ করে:
sdk.dir=/PATH_TO_SDK/
ম্যাক ওএসএক্স-এ,
sdk/tools/bin
নেভিগেট করুন
তারপরে
./sdkmanager --licenses
চালান এবং সমস্ত লাইসেন্স গ্রহণ করুন।
যদি আপনি জেনকিন্স ব্যবহার করে থাকেন তবে আপনি বিল্ড প্রক্রিয়ায় প্রথম পদক্ষেপ হিসাবে নিম্নলিখিত বাশ স্ক্রিপ্টটি ব্যবহার করতে পারেন:
(while sleep 3; do echo "y"; done) | $ANDROID_HOME/tools/android update sdk -u
এটি অবশ্যই সমস্ত উপলভ্য আপডেটগুলি ইনস্টল করবে তবে আপনি যদি ডিস্কের জায়গাটি ছাড়িয়ে নিতে পারেন তবে এটি আপনাকে কিছুটা সময় সাশ্রয় করবে। ঘুম হ'ল ইনস্টলেশন প্রোগ্রামে ভাঙা পাঠ্যপুস্তক এড়ানো, যেহেতু "হ্যাঁ" এই ক্ষেত্রে সঠিকভাবে কাজ করে না।
সম্পাদনা: আপনি যদি এসডিকে ম্যানেজারে বিল্ট ব্যবহার করে থাকেন তবে সঠিক $ এন্ড্রয়েডহোম পাওয়ার জন্য বিল্ড স্টেপে আপনার "ইনস্টল অ্যান্ড্রয়েড প্রকল্পের পূর্বশর্তগুলি" প্লাগইন যুক্ত করতে হবে।
সত্যিকারের নীরব এবং স্বয়ংক্রিয়ভাবে ইনস্টল করার জন্য আমি অবশেষে উইন্ডোজটিতে একটি সমাধান পেয়েছি:
উইন্ডোজে, নিম্নলিখিত সিনট্যাক্সগুলি কাজ করে না:
echo y | sdkmanager --licenses
মনে হচ্ছে "y" সঠিকভাবে ব্যাচের মধ্যে ডাকা জাভা প্রোগ্রামে প্রেরণ করা হয়নি।
কাজটি হ'ল একাধিক "y" দিয়ে একটি ফাইল ফাইল-y.txt তৈরি করা, একে একে লাইন দিয়ে, এবং ব্যবহার করা
call sdkmanager --licenses < file-y.txt
এটি লাইসেন্স ডিরেক্টরিতে প্রয়োজনীয় ফাইল তৈরি করবে। সমস্যাটি সম্ভবত জাভাতে বাফারডারিডার ব্যবহারের সাথে সম্পর্কিত
android
সরঞ্জামটি
sdkmanager
হয়েছে এবং এর পরিবর্তে আপনার
sdkmanager
ব্যবহার করা উচিত।
আপনি যখন প্রথমে এটি গ্রহণ করবেন তখন
sdkmanager
লাইসেন্স ফাইলটিও লিখে দেয়।
কমান্ড সত্ত্বেও আপনি কোন এসডিকে ব্যবহার করছেন তার উপর নির্ভর করে লাইসেন্স পরিবর্তন হয়
echo -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > "$ANDROID_SDK/licenses/android-sdk-license"
কিছু সিস্টেমে কাজ করে।
এটি সব কাজ করবে না।
কিছু এসডিকে ইনস্টলগুলি ফাইলের কোনও নতুন লাইন ছাড়াই ফাইলের লাইসেন্সের সমাপ্তি আশা করে তাই ইকো কমান্ডটিতে একটি
-n
যুক্ত করার চেষ্টা করুন।
echo -n -e "\n8933bad161af4178b1185d1a37fbf41ea5269c55" > "$ANDROID_SDK/licenses/android-sdk-license"
যদি এটি কাজ না করে থাকে তবে আপনি পরিবর্তে বেস 64 এনকোডিং ব্যবহার করে দেখতে পারেন।
সুতরাং আমার লাইসেন্সটি আবিষ্কার করতে:
$> rm ${ANDROID_HOME}/
$> unzip tools_r25.2.3-linux.zip -d ${ANDROID_HOME}
$> ${ANDROID_HOME}/tools/bin/sdkmanager "system-images;android-23;default;x86_64"
এটি আপনাকে লাইসেন্সটি গ্রহণের অনুরোধ জানাবে।
এটি স্বীকার করার পরে এটি copy
${ANDROID_HOME}/licenses/android-sdk-license
অনুলিপি করবে।
আপনি সর্বদা
base64
কি পেতে চান তা নিশ্চিত করতে
base64
ব্যবহার করুন।
$> base64 ${ANDROID_HOME}/licenses/android-sdk-license
Cjg5MzNiYWQxNjFhZjQxNzhiMTE4NWQxYTM3ZmJmNDFlYTUyNjljNTU=
তারপরে আপনি
base64 -d
ফাইলটি ঠিক আবার তৈরি করতে পারেন।
$> echo Cjg5MzNiYWQxNjFhZjQxNzhiMTE4NWQxYTM3ZmJmNDFlYTUyNjljNTU= | base64 -d > ${ANDROID_HOME}/licenses/android-sdk-license
ফাইলটি কোনও sha1sum চালিয়ে যা প্রত্যাশিত তা যদি আপনি যাচাই করতে পারেন।
$> sha1sum ${ANDROID_HOME}/licenses/android-sdk-license
da6b80c9c47b41c0bf7032938e7137a58a3dc249
cd $ANDROID_HOME/tools/bin yes | ./sdkmanager --update
অথবা
yes | $ANDROID_HOME/tools/bin/sdkmanager --update