google maps - ডিবাগ মোডের জন্য কীভাবে SHA-1 ফিঙ্গারপ্রিন্ট শংসাপত্রটি অ্যান্ড্রয়েড স্টুডিওতে পাবেন?




google-maps android-studio (20)

আমি Eclipse থেকে নিজেকে অ্যান্ড্রয়েড স্টুডিওতে স্থানান্তরিত করেছি। এখন আমি আমার মানচিত্র অ্যাপে কাজ করার চেষ্টা করছি। সুতরাং আমার আমার SHA-1 ফিঙ্গারপ্রিন্ট শংসাপত্র নম্বর প্রয়োজন।

যখন আমি Eclipse ব্যবহার করছিলাম এটি উইন্ডোজ -> পছন্দসমূহ -> অ্যান্ড্রয়েড -> বিল্ডের ঠিক নীচে ছিল। তবে অ্যান্ড্রয়েড স্টুডিওতে আমি এর মতো কোনও বিকল্প খুঁজে পাইনি যাতে আমি সহজেই আঙুলের ছাপটি খুঁজে পেতে পারি। আমি উইন্ডোজ ব্যবহার করছি। আমি এই link থেকে পড়েছি যে:

আপনি যখন আইডিই থেকে আপনার প্রকল্পটি চালাবেন বা ডিবাগ করবেন তখন অ্যান্ড্রয়েড স্টুডিও আপনার অ্যাপটি ডিবাগ মোডে স্বয়ংক্রিয়ভাবে সাইন করে।

সুতরাং আমি এই লিঙ্কটি থেকে আমার জাভা বিন পাথ সেট করার পরে কমান্ড লাইনে এটি চালানোর চেষ্টা করেছি এবং দুর্ভাগ্যক্রমে আমার আঙুলের ছাপটি খুঁজে পাইনি। এটি বলছে যে এটি একটি অবৈধ বিকল্প

keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

অ্যাক্রয়েড স্টুডিওর থেকে এসএএএএ -৩ আঙুলের ছাপটি খুঁজে পাওয়ার কোনও উপায় কি এটি এক্লিপসে খুব সহজ ছিল? আমি যেমন অ্যান্ড্রয়েড স্টুডিওতে নবাগত, এটি সন্ধানের সম্পূর্ণ প্রক্রিয়াটি কী?

আরেকটি জিনিস আমি যুক্ত করতে চাই তা হল যে আমি আমার Elpipse SHA-1 ফিঙ্গারপ্রিন্ট তৈরি করেছি এবং এর আগে আমার অ্যাপটি Google ফিঙ্গার কনসোলটিতে সেই ফিঙ্গারপ্রিন্টে নিবন্ধিত আছে এবং আমি সেই অ্যাপ্লিকেশন কী দ্বারা সেই অ্যাপ্লিকেশনটিতে Eclipse এ কাজ করেছি। এই অ্যান্ড্রয়েড স্টুডিওতে আমার প্রকল্পে একই এপিআই কী ব্যবহার করা যেতে পারে?


অ্যান্ড্রয়েড স্টুডিও ব্যবহার করে আপনাকে এমডি 5, এসএএএ -1 আঙুলের ছাপ খুঁজে পেতে আমি খুব সহজ প্রক্রিয়া পেয়েছি।

  1. আপনার প্রকল্প চালান
  2. গ্রেডেল মেনুতে যান (মেনু: দেখুন -> সরঞ্জাম উইন্ডোজ -> গ্রেডল)
  3. গ্রেডল উইন্ডোতে 'SignReport' এ যান। (আপনার প্রকল্প -> কার্য -> অ্যান্ড্রয়েড -> সাইনিংয়ের রিপোর্ট)
  4. চালাও এটা. (ডাবল ক্লিক বা Ctrl + Shift + F10 ব্যবহার করে)
  5. রান উইন্ডোতে আপনি সমস্ত তথ্য পাবেন।

এটি কেবল ডিবাগ মোডের জন্য কাজ। রিলেজ মোডে আমি শা -১ দেখতে পাচ্ছি না। gradlew signingReport ফলাফল এখানে gradlew signingReport

Variant: release
Config: none
----------
Variant: releaseUnitTest
Config: none
----------
Variant: debug
Config: debug
Store: path\Android\avd\.android\debug.keystore
Alias: AndroidDebugKey
MD5: xx:xx:xx:62:86:B7:9C:BC:FB:AD:C8:C6:64:69:xx:xx
SHA1: xx:xx:xx:xx:0F:B0:82:86:1D:14:0D:AF:67:99:58:1A:01:xx:xx:xx
Valid until: Friday, July 19, 2047
----------

সুতরাং আমার শা -১ পেতে কীটল অবশ্যই ব্যবহার করতে হবে। এখানে অফিসিয়াল ফায়ারবেস ডক:

Get_sha-1_for_release


  1. ডান ফলকে গ্রেডল আইকনটিতে ক্লিক করুন।
  2. রুট প্রকল্পের নাম ক্লিক করুন।
  3. টাস্ক ক্লিক করুন
  4. অ্যান্ড্রয়েড ক্লিক করুন
  5. SigningReport এ ক্লিক করুন
  6. নীচের অংশে আপনি রান রিপোর্টটি দেখতে পাবেন
  7. "টগল কার্য সম্পাদন / পাঠ্য মোড" ক্লিক করুন
  8. আপনি Sha-1 দেখতে পারেন


আঙুলের মুদ্রণটি পাওয়ার সহজতম উপায় হ'ল অ্যাপটি থেকে স্বাক্ষরিত প্রতিবেদনে সরে যাওয়া ড্রপ ডাউন ক্লিক করে বিল্ড ক্লিক করুন।

তারপরে আপনি নীচের অংশে sha1 ফিঙ্গারপ্রিন্ট দেখতে সক্ষম হবেন যেখানে আপনি ডিবাগ রিপোর্ট এবং স্ট্যাক ট্রেস দেখতে পাবেন। আপনি যখন কোনও অ্যাপ্লিকেশন কোনও ডিভাইস বা কোনও এমুলেটরটিতে চালাতে চান তখন এনবি অ্যাপটিতে ফিরে যেতে স্মরণ করবে।


আপনার যদি অ্যান্ড্রয়েড স্টুডিও থাকে তবে এটি খুব সাধারণ। অ্যান্ড্রয়েড স্টুডিও ব্যবহার করে কেবল এটির একটি মানচিত্র তৈরি করুন এবং এটি তৈরির পরে google_maps_api.xML এ যান। সেখানে মন্তব্যে দেওয়া একটি লিঙ্ক থাকবে। আপনি যদি এটি আপনার ব্রাউজারে পেস্ট করেন তবে এটি কিছু বিশদ পূর্ণ হতে জিজ্ঞাসা করবে এবং এর পরে আপনার এপিআই তৈরি হবে। কীটোল এবং সমস্ত ব্যবহার করার দরকার নেই।

স্ক্রিন শট:


আপনি যদি অ্যান্ড্রয়েড স্টুডিও ব্যবহার করছেন তবে গ্রেডল টাস্কগুলির মাধ্যমে আপনি SHA-1 এবং MD5 শংসাপত্রের ফিঙ্গারপ্রিন্ট (ডিবাগ, রিলিজ ... সমস্ত বিল্ড প্রকারের !!) পেতে পারেন:

signingReport

SHA-1 এবং MD5 শংসাপত্রগুলি বার্তা লগগুলিতে প্রদর্শিত হয়।

অ্যান্ড্রয়েড প্লাগইন (গ্রেডল অ্যাপে কনফিগার করা) ডিফল্টর জন্য একটি ডিবাগ মোড তৈরি করে।

com.android.application

কীস্টোরে ফাইল রুট:

HOME/.android/debug.keystore

আমি build.gradle . build.gradle debug.keystore সংযুক্ত করার পরামর্শ build.gradle । এটি করার জন্য একটি অ্যাপ্লিকেশন ফোল্ডারে একটি ফাইল, debug.keystore এবং তারপরে গ্রেডল অ্যাপটিতে SigningConfigs যুক্ত করুন:

apply plugin: 'com.android.application'

    android {
        ................
        signingConfigs {
            debug {
                storeFile file("../app/debug.keystore")
                storePassword "android"
                keyAlias "androiddebugkey"
                keyPassword "android"
            }
            release {
                storeFile file("../app/debug.keystore")
                storePassword "android"
                keyAlias "androiddebugkey"
                keyPassword "android"
            }
        }
        ........
    }

অতিরিক্ত: আপনি যদি মুক্তির জন্য তৈরি করতে চান তবে একটি অ্যাপ্লিকেশন ফোল্ডারে একটি ফাইল release.keystore । (এই উদাহরণটি একই debug.keystore ব্যবহার করে))


আমার সমস্যাটি একইরূপে যেমন আমি আমার গুগল ম্যাপস প্রকল্পটিও ইক্লিপস থেকে অ্যান্ড্রয়েড স্টুডিওতে স্থানান্তরিত করেছি। আমি এটি অনুসরণ করে আমার সমস্যার সমাধান করেছি:

কমান্ডের মাধ্যমে আপনার জাভা বিন ডিরেক্টরিতে যান:

C:\Program Files\Java\jdk1.7.0_71\bin>

এখন আপনার কমান্ড উইন্ডোতে (সিএমডি.এক্সই) নীচের কমান্ডটি টাইপ করুন:

keytool -list -v -keystore c:\users\your_user_name\.android\debug.keystore -alias androiddebugkey -storepass android -keypass android

উদাহরণ:

keytool -list -v -keystore c:\users\James\.android\debug.keystore -alias androiddebugkey -storepass android -keypass android

অথবা আপনি কেবলমাত্র সেমিডিতে এটি লিখতে পারেন যদি আপনি ব্যবহারকারীর নামটি না জানেন:

keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

এবং আপনি SHA1 পাবেন।

তারপরে আমি আমার প্যাকেজের নাম পরিবর্তন হয়ে যাওয়ার কারণে https://code.google.com/apis/console থেকে একটি নতুন কী তৈরি করেছি এবং তারপরে আমার অ্যাপ্লিকেশনটিতে এই কীটি ব্যবহার করব। এটা ভাল কাজ করে।

আপনি jdkX.X.X_XX এর বিন ফোল্ডারে রয়েছেন তা নিশ্চিত করুন (আমার ফোল্ডারের নাম jdk1.7.0_71) , অথবা অন্যথায় যদি আপনি কোন ফোল্ডারের নাম জানেন না তবে জাভা ফোল্ডারটি খোলার মাধ্যমে এটি সন্ধান করুন এবং আপনি দেখতে পাবেন ফোল্ডারের নাম কী, তবে আপনাকে অবশ্যই আপনার বিএন ফোল্ডারে থাকতে হবে এবং তারপরে এই কমান্ডটি চালাতে হবে। উপরের পদ্ধতিটি দ্বারা আজ আমি একটি সিএমডি কমান্ড উইন্ডোতে আমার SHA1 মান পেয়েছি।

স্ন্যাপশট:


আমি @ হিরেন প্যাটেল উত্তরটি দিয়ে যাচ্ছি তবে অ্যান্ড্রয়েড স্টুডিও ২.২ এ সামান্য পরিবর্তন


আমি এইভাবে করেছি:

পদক্ষেপ 1: এই ফোল্ডারে যান

On Mac: /Users/<username>/.android/

On Windows: C:\Documents and Settings\<username>\.android\

On Linux: ~/.android/

পদক্ষেপ 2: এই কমান্ড লাইনটি চালান:

keytool -list -v -keystore debug.keystore -storepass android

আপনি SHA-1 কী দেখতে পাবেন।


আমি স্রেফ অ্যান্ড্রয়েড স্টুডিওতে SHA-1 পাওয়ার কেসটি পেয়েছি:

  1. আপনার প্যাকেজে ক্লিক করুন এবং নতুন -> গুগল -> গুগল ম্যাপস ক্রিয়াকলাপটি চয়ন করুন
  2. অ্যান্ড্রয়েড স্টুডিও আপনাকে google_maps_api.xML এ পুনঃনির্দেশ করে

এবং আপনি google_maps_key পেতে যা যা আপনার প্রয়োজন তা দেখতে পাবেন।


একটি নতুন "গুগল ম্যাপস প্রকল্প" তৈরি করার সময়, অ্যান্ড্রয়েড স্টুডিও ভি 1.5.1 এ, শেষ স্ক্রিনটি google_maps_api.xml ফাইলটি খুলবে এবং google_maps_api.xml নির্দেশাবলী সহ স্ক্রিনটি প্রদর্শন করবে:

সম্পদ:

টোডো: আপনার অ্যাপ্লিকেশনটি চালানোর আগে আপনার একটি Google মানচিত্র এপিআই কী প্রয়োজন।

একটি পেতে, এই লিঙ্কটি অনুসরণ করুন, দিকনির্দেশগুলি অনুসরণ করুন এবং শেষে "তৈরি করুন" টিপুন:

https://console.developers.google.com/flows/enableapi?apiid=maps_android_backend&keyType=CLIENT_SIDE_ANDROID&r= আপনার শা -1 + আপনার প্যাকেজ নাম

এই লাইনটি ব্যবহার করে আপনি একটি বিদ্যমান কীতে আপনার শংসাপত্রগুলিও যুক্ত করতে পারেন:
আপনার শা -১: আপনার প্যাকেজ নাম

বিকল্পভাবে, এখানে নির্দেশাবলী অনুসরণ করুন:
https://developers.google.com/maps/documentation/android/start#get-key

আপনার কীটি একবার হয়ে গেলে (এটি "আইজা" দিয়ে শুরু হয়), এই ফাইলে "google_maps_key" স্ট্রিংটি প্রতিস্থাপন করুন।
<string name="google_maps_key" templateMergeStrategy="preserve" translatable="false">YOUR GOOGLE MAPS KEY</string>

আপনার গুগল ম্যাপ কী পেতে আপনার ব্রাউজারে প্রদত্ত ইউআরএল লিঙ্কটি কেবল কেটে পেস্ট করুন এবং নতুন অ্যাপ্লিকেশন তৈরি করার সময় উপরের নির্দেশাবলী অনুসরণ করুন। SHA-1 এবং Package names ইতিমধ্যে প্রদত্ত লিঙ্কটিতে রয়েছে সুতরাং আপনার সেগুলি জানার দরকার নেই। আপনি প্রকল্প তৈরির নির্দেশাবলী অনুসরণ করার পরে সম্পূর্ণ হওয়া resources>Values>google_maps_api.xml ফাইলগুলিতে সেগুলি আপনার প্রকল্পে থাকবে।


এটি আমার ক্ষেত্রে কাজ করেছে: এই পাথটিতে স্বয়ংক্রিয়ভাবে সঞ্চয়কৃত স্টোর ফাইল সংরক্ষণের পরিবর্তে % USERPROFILE% ব্যবহার করুন সি: ব্যবহারকারী / ব্যবহারকারী নাম / .অ্যান্ড্রয়েড :

keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

এটি আমার পক্ষে কাজ করেছে:

keytool -exportcert -alias androiddebugkey -keystore

পাথ-টু-ডিবাগ-বা-উত্পাদন-কীস্টোর এখানে সি: \ ব্যবহারকারীগণ \ youruser.android \ debug.keystore -list -v এর মতো রাখুন v

আপনি ইতিমধ্যে কোনও কমান্ড বা টার্মিনাল উইন্ডোতে Java\jdk*\bin ডিরেক্টরিতে Java\jdk*\bin তা নিশ্চিত করুন।

তারপরে অ্যান্ড্রয়েডকে পাসওয়ার্ড হিসাবে ব্যবহার করুন।

কখনও কখনও ওয়েব সংস্থানগুলি বিভ্রান্তিকর হতে পারে। এগুলিই কাজ করছে:


কীস্টোরের পথটি ডাবল উদ্ধৃতিতে রয়েছে। এটা ঠিক কাজ করছে।

keytool -list -v -keystore "C:\Users\App innovation\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

ডান প্যানেলে গ্রেডল আইকনটি ক্লিক করুন, তারপরে (মূল) টিপুন।

কার্য> অ্যান্ড্রয়েড> সাইনিংআরপোর্ট

তারপরে গ্রেডল স্ক্রিপ্টটি কার্যকর হবে এবং আপনি আপনার কীগুলি দেখতে পাবেন।


ম্যাকের জন্য, এটি পুরোপুরি কাজ করেছে:

keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android

সাধারণ কমান্ড ব্যবহার করুন:

কীটল-এক্সপোর্টসর্ট-কীস্টোরের পাথ-থেকে-ডিবাগ-বা-উত্পাদন-কীস্টোর-তালিকা -v

এবং আপনি SHA1 কীটি পাবেন।


উইন্ডোজ 10 এর জন্য , অ্যান্ড্রয়েড স্টুডিও টার্মিনাল থেকে:

keytool -exportcert -alias androiddebugkey -keystore %USER_PROFILE%"/.android/debug.keystore -list -v

দ্রষ্টব্য: debug.keystore , পাসওয়ার্ডটি "অ্যান্ড্রয়েড"। ডিবাগ "%USER_PROFILE%"/.android/debug.keystore সাধারণত "%USER_PROFILE%"/.android/debug.keystore


[আপডেট 2017]

পদক্ষেপ 1: অ্যান্ড্রয়েড স্টুডিওর শীর্ষে ডানদিকে গ্রেডল বিকল্পটি ক্লিক করুন।

ধাপ ২:

- রিফ্রেশ ক্লিক করুন (গ্রেডেল বার থেকে রিফ্রেশ ক্লিক করুন, আপনি আপনার প্রকল্পের তালিকা গ্রেড স্ক্রিপ্ট দেখতে পাবেন)

- আপনার প্রকল্পে ক্লিক করুন (আপনার প্রকল্পের নাম ফর্মের তালিকা (মূল))

- টাস্ক ক্লিক করুন

- অ্যান্ড্রয়েড ক্লিক করুন

- স্বাক্ষরকরণের প্রতি ডাবল ক্লিক করুন রিপোর্ট (গ্রেড কনসোল / রান বারে আপনি SHA1 এবং MD5 পাবেন)

পদক্ষেপ 3: আপনার SHA1 কী দেখতে অ্যান্ড্রয়েড স্টুডিওর নীচে অবস্থিত গ্রেডল কনসোল বিকল্পটিতে ক্লিক করুন।

পদক্ষেপ 4: এখন আপনি SHA কী পেয়েছেন তবে আপনি আপনার প্রকল্পটি চালাতে পারবেন না hat এজন্য আপনার কনফিগারেশনটিকে অ্যাপ মোডে পরিবর্তন করুন। নীচে চিত্র দেখুন।

এটার মত.

পদক্ষেপ 5: শুভ কোডিং !!


সবচেয়ে সহজ উপায়:

শেষ ধাপে অ্যান্ড্রয়েড স্টুডিও ভি ২.২ এর জন্য আপডেট যুক্ত হয়েছে

এই কাজটি করার দুটি পদ্ধতি আছে।

1. দ্রুততর উপায় :

  1. Android স্টুডিও খুলুন
  2. আপনার প্রকল্প খুলুন
  3. গ্রেডলে ক্লিক করুন (ডান দিকের প্যানেল থেকে, আপনি গ্রেডল বার দেখতে পাবেন)
  4. রিফ্রেশ ক্লিক করুন ( গ্রেডেল বার থেকে রিফ্রেশ ক্লিক করুন, আপনি আপনার প্রকল্পের তালিকা গ্রেড লিপি দেখতে পাবেন)
  5. আপনার প্রকল্পে ক্লিক করুন (আপনার প্রকল্পের নাম ফর্মের তালিকা (মূল))
  6. টাস্ক এ ক্লিক করুন
  7. অ্যান্ড্রয়েড ক্লিক করুন
  8. সাইন ইনআরএবংআর উপর ডাবল ক্লিক করুন (আপনি রান বারে SHA1 এবং MD5 পাবেন (কখনও কখনও এটি গ্রেডল কনসোলে থাকবে))
  9. আপনার অ্যাপ্লিকেশন চালাতে বা ডিবাগ করতে মডিউল নির্বাচন ড্রপডাউন থেকে অ্যাপ মডিউল নির্বাচন করুন

স্ক্রিনশটটি নীচে চেক করুন:

২. গুগল ম্যাপের ক্রিয়াকলাপের সাথে কাজ করুন :

  1. Android স্টুডিও খুলুন
  2. আপনার প্রকল্প খুলুন
  3. ফাইল মেনুতে ক্লিক করুন -> নতুন নির্বাচন করুন -> গুগলে ক্লিক করুন -> গুগল মানচিত্র ক্রিয়াকলাপ নির্বাচন করুন
  4. একটি কথোপকথন উপস্থিত হবে -> সমাপ্তিতে ক্লিক করুন
  5. অ্যান্ড্রয়েড স্টুডিও স্বয়ংক্রিয়ভাবে google_maps_api.xml সহ একটি এক্সএমএল ফাইল তৈরি করবে
  6. আপনি এখানে ডিবাগ এসএএএ 1 কী পাবেন (এক্সএমএল ফাইলের 10 নম্বর লাইনে )

স্ক্রিনশট নীচে পরীক্ষা করুন:

অ্যান্ড্রয়েড স্টুডিও ভি 2.2 আপডেট

এক্সিকিউশন নিয়ে একটি সমস্যা আছে।

সমাধান:

  • টুগল টাস্ক এক্সিকিউশন / রান বার থেকে টেক্সট মোডে ক্লিক করুন

স্ক্রিনশট নীচে পরীক্ষা করুন:

সম্পন্ন.


সরল, আপনার স্প্ল্যাশ স্ক্রিনে এই পদ্ধতিগুলিকে কল করুন: হ্যাশ () এবং getCertificateSHA1 ফিঙ্গারপ্রিন্ট (), এবং তারপরে কীগুলি লগতে দৃশ্যমান হবে

private void hash() {


            PackageInfo info;
            try {

                info = getPackageManager().getPackageInfo(
                        this.getPackageName(), PackageManager.GET_SIGNATURES);

                for (android.content.pm.Signature signature : info.signatures) {
                    MessageDigest md;
                    md = MessageDigest.getInstance("SHA");
                    md.update(signature.toByteArray());
                    Log.e("sagar sha key", md.toString());
                    String something = new String(Base64.encode(md.digest(), 0));
                    Log.e("sagar Hash key", something);
                    System.out.println("Hash key" + something);
                }

            } catch (PackageManager.NameNotFoundException e1) {
                Log.e("name not found", e1.toString());
            } catch (NoSuchAlgorithmException e) {
                Log.e("no such an algorithm", e.toString());
            } catch (Exception e) {
                Log.e("exception", e.toString());
            }
        }

        private void getCertificateSHA1Fingerprint() {
            PackageManager pm = this.getPackageManager();
            String packageName = this.getPackageName();
            int flags = PackageManager.GET_SIGNATURES;
            PackageInfo packageInfo = null;
            try {
                packageInfo = pm.getPackageInfo(packageName, flags);
            } catch (PackageManager.NameNotFoundException e) {
                e.printStackTrace();
            }
            Signature[] signatures = packageInfo.signatures;
            byte[] cert = signatures[0].toByteArray();
            InputStream input = new ByteArrayInputStream(cert);
            CertificateFactory cf = null;
            try {
                cf = CertificateFactory.getInstance("X509");
            } catch (CertificateException e) {
                e.printStackTrace();
            }
            X509Certificate c = null;
            try {
                c = (X509Certificate) cf.generateCertificate(input);
            } catch (CertificateException e) {
                e.printStackTrace();
            }
            String hexString = "";
            try {
                MessageDigest md = MessageDigest.getInstance("SHA1");
                byte[] publicKey = md.digest(c.getEncoded());
                Log.e("sagar SHA",byte2HexFormatted(publicKey));
            } catch (NoSuchAlgorithmException e1) {
                e1.printStackTrace();
            } catch (CertificateEncodingException e) {
                e.printStackTrace();
            }
        }

        public static String byte2HexFormatted(byte[] arr) {
            StringBuilder str = new StringBuilder(arr.length * 2);
            for (int i = 0; i < arr.length; i++) {
                String h = Integer.toHexString(arr[i]);
                int l = h.length();
                if (l == 1) h = "0" + h;
                if (l > 2) h = h.substring(l - 2, l);
                str.append(h.toUpperCase());
                if (i < (arr.length - 1)) str.append(':');
            }
            return str.toString();
        }

ধন্যবাদ.






android-studio