ADB ইনস্টল INSTALL_FAILED_TEST_ONLY এর সাথে ব্যর্থ


199

আমার ডিভাইসে একটি APK ইনস্টল করতে আমার সমস্যা হচ্ছে।

adb install <.apk>

উপরের কমান্ডটি ব্যবহার করে নিম্নলিখিতটি ফিরে আসে:

5413 KB/s (99747 bytes in 0.017s)
        pkg: /data/local/tmp/AppClient.TestOnly.App3.apk
Failure [INSTALL_FAILED_TEST_ONLY]

কী কারণে এই সমস্যার কারণ হতে পারে তার কোন ধারণা?

এটি অবশ্যই ডিভাইসটিকে স্বীকৃতি দেয়। এটি এপিকে নিয়ে কোনও সমস্যা হতে পারে?

উত্তর:


272

দেখে মনে হচ্ছে আপনার এই বৈশিষ্ট্যটিতে আপনার AndroidManifest.xml
পরিবর্তনটি পরিবর্তন android:testOnly="true"করতে হবে android:testOnly="false"বা মুছে ফেলা দরকার।

আপনি যদি বিকল্পটি কমান্ডটি বিকল্পের সাথে ব্যবহার করতে পারেন android:testOnlyতেমন বৈশিষ্ট্যটি রাখতে চান তবে আপনাকে প্রথমে এপিকে টু ডিভাইস লাগতে পারে ।truepm install-tpush

$ adb push bin/hello.apk /tmp/
5210 KB/s (825660 bytes in 0.154s)

$ adb shell pm install /tmp/hello.apk 
    pkg: /tmp/hello.apk
Failure [INSTALL_FAILED_TEST_ONLY]

$ adb shell pm install -t /tmp/hello.apk 
    pkg: /tmp/hello.apk
Success

আমি একই সমস্যাটি পুনরুত্পাদন করতে সক্ষম হয়েছি এবং উপরেরগুলি এটি সমাধান করেছে।

যদি আপনার এপিপি ডিভাইসের বাইরে থাকে (আপনার ডেস্কটপে), তবে নীচের কমান্ডটি এটি করবে:

$ adb install -t hello.apk

62
আপনাকে অ্যাডবি পুশ এবং পিএম ইনস্টল করার দরকার নেই, আপনি অ্যাডবি ইনস্টল কমান্ডের ঠিক পরে -t স্যুইচটি নির্দিষ্ট করতে পারবেন: অ্যাডবি ইনস্টল -t-টি প্যাকেজ.এপকে
marioc64

এপিকে আর ঠেকানোর দরকার নেই - অ্যাডব্লাই ইনস্টলে কাজ করে ভাল কাজ করে, সম্পূর্ণ কমান্ডের জন্য আমার উত্তরটি নীচে চেক করুন।
এএমআইটি

adb push bin/hello.apk /tmp/আমার জন্য কাজ করে না, adb push ./debug.apk /sdcard/temp/debug.apkকাজ করেছে
হেন্ডারডাব্লুডি

adb install -t app/build/outputs/apk/usUnitedStates/debug/app-usUnited-debug.apkআমার জন্য কাজ।
সুলভ টিমসিনা

ধন্যবাদ। এটি আমার সমস্যার সমাধান করেছে। আমার অ্যাপ্লিকেশনটি ছিল একটি সিস্টেম অ্যাপ। সুতরাং -f প্রয়োজন ছিল। -f: Install package on the internal system memory.
জুলিয়ান

95

আমার একই রকম সমস্যা ছিল Android Studio 3.0.0 Beta 7এবং প্লে স্টোরে আর প্রকাশ করতে পারিনি।

যেমন এখানে বলা হয়েছে: https://developer.android.com/studio/run/index.html

দ্রষ্টব্য: রান বোতামটি পরীক্ষামূলকভাবে = "সত্য" দিয়ে একটি APK তৈরি করে, যার অর্থ APK কেবলমাত্র অ্যাডবির মাধ্যমে ইনস্টল করা যেতে পারে (যা অ্যান্ড্রয়েড স্টুডিও ব্যবহার করে)। আপনি যদি কোনও ডিবাগযোগ্য এপিএল চান যা লোকেরা অ্যাডবি ছাড়াই ইনস্টল করতে পারে, আপনার ডিবাগের রূপটি নির্বাচন করুন এবং বিল্ড> বিল্ড এপিপি (গুলি) ক্লিক করুন।

রিলিজ বিল্ডের ক্ষেত্রেও একই যায়, Android Studio 3আপনাকে Build > Build APK(s)স্টোরের কাছে জমা দিতে পারে এমন একটি নন-টেস্টেবল রিলিজ এপিপি থাকা দরকার।


6
আমি এখনই (অক্টোবর / নভেম্বর 2017) সন্দেহ করি যে এখানে আসা বেশিরভাগ লোকের পক্ষে এটি সঠিক উত্তর। এএস 3 এর আগে, "রান" দ্বারা উত্পাদিত এপিএএস এএস এর বাইরেও ইনস্টলযোগ্য ছিল, এটি নয়।
noamtm

আপডেট আছে এবং আরও কিছু টুইট আছে .. এটি বের করতে আমাকে কিছুটা সময় নিয়েছে: /
রুবেন

61

-tনীচের স্ক্রিনশটের মতো ইনস্টল ফ্ল্যাগ যুক্ত করুন :

উত্তরটি লাল বাক্সে রয়েছে


আমি সংকলিত নমুনা প্রকল্পটি 'com.android.tools.build:gradleferences.4.0-alpha7' ব্যবহার করে এবং কোনও স্থিতিশীল সংস্করণ দিয়ে সংকলন করে না, কেবলমাত্র উল্লেখ করা হিসাবে এটি আমার জন্য সমস্যার সমাধান করেছে।
বুববাগাম

7
দয়া করে ব্যাখ্যা করুন -t
rmtheis

3
এডিবি সাহায্যে, আপনি দেখতে পাবেন -t এর সাহায্যে পরীক্ষা প্যাকেজগুলিকে অনুমতি দিন
xiaoyee

স্ক্রিনটি মডিউল ড্রপডাউন মেনুতে কনফিগারেশন সম্পাদনা ক্লিক করে চালু করা হয়েছে - আইডিইয়ের শীর্ষে মেক এবং রান, ডিবাগ বোতামগুলির মধ্যে: বিকাশকারী.আরড্রয়েড
জিন বো বো

56

আমার ক্ষেত্রে এই ভুলটি অস্থির গ্রেড সংস্করণে ছিল। কেবল গ্রেডের একটি স্থিতিশীল সংস্করণ ব্যবহার করুন (আলফা নয়, এমনকি বিটাও নয়)। এবং এটা আমার জন্য স্থির ছিল


1
দিন বাঁচাল! গ্রেড সংস্করণটি ২.৪.০-আলফা3 থেকে ২.৩.০ এ পরিবর্তন করা হয়েছে
রিয়াজ মুর্শেদ

1
রক্তপাতের প্রান্তে লেগে থাকার দাম ... ধন্যবাদ!
রায়ান আর

যে কেউ অ্যান্ড্রয়েড সেটিংটি নিশ্চিত করতে পারে: কেবলমাত্র "সত্য" এটি অস্থির গ্রেড সংস্করণের জন্যও ঠিক করে দেবে?
জিপিএস

43

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

android.injected.testOnly=false

থেকে gradle.properties ফাইল


28

আমি এলিসির সাথে একমত আমার প্রকল্পটি ২.৪ প্রিভিউতে খোলার পরে এবং অ্যান্ড্রয়েড স্টুডিও ২.৩ এ একই প্রকল্পটি খোলার পরে আমি একই ত্রুটি পেয়েছি

Build.gradle থেকে এই লাইনটি পরিবর্তন করে সমস্যাটি স্থির করে

classpath 'com.android.tools.build:gradle:2.4.0-alpha5'

প্রতি

classpath 'com.android.tools.build:gradle:2.3.1'

18

অ্যান্ড্রয়েড স্টুডিও 3.0 কেবলমাত্র APK এ পরীক্ষার উত্পন্ন করে।

অ্যান্ড্রয়েড ম্যানিফেস্টের ট্যাগটিতে "অ্যান্ড্রয়েড: টেস্টঅনলি" সম্পত্তি যুক্ত করে আমি সমস্যার সমাধান করেছি।

 <application
    .....
    android:testOnly="false"
    android:theme="@style/AppTheme">

এবং তারপরে অ্যান্ড্রয়েড স্টুডিও 3.0 মেনু দ্বারা APK তৈরি করেছেন : বিল্ড -> এপিপি (গুলি) তৈরি করুন

আরও তথ্য: https://commonsware.com/blog/2017/10/31/android-studio-3p0-flag-test-only.html


12

আপনার 'গ্রেড.প্রেপারটিস' এ এই লাইনটি যুক্ত করুন

android.injected.testOnly=false

ধন্যবাদ! এটি চামচ রানার সমস্যাটিও ঠিক করে দেবে!
বাসিম শেরিফ

11

পূর্ববর্তী পোস্টের কেউই আমার সমস্যা সমাধান করে না। আমার সাথে যা ঘটছে তা এখানে:
আমি সাধারণত "রান" বোতামে ক্লিক করে অ্যান্ড্রয়েড স্টুডিও থেকে অ্যাপটি লোড করি। আপনি যখন এটি করেন, অ্যান্ড্রয়েড এমন একটি অ্যাপ তৈরি করবে যা ডিবাগের জন্য ভাল তবে ইনস্টলের জন্য নয় for আপনি যদি ব্যবহার করে ইনস্টল করার চেষ্টা করেন:

অ্যাডবি ইনস্টল-আর ইউরপক

আপনি একটি বার্তা পাবেন যাতে বলে:

ব্যর্থতা [INSTALL_FAILED_TEST_ONLY]

এটি হয়ে গেলে, আপনাকে প্রথমে বিল্ডটি পরিষ্কার করে এপিপিটি পুনরায় তৈরি করতে হবে, তারপরে বিল্ড-> বিল্ড এপিএকে নির্বাচন করুন। ছবিটি নমুনা দেখুন:

অ্যান্ড্রয়েড APK তৈরি করুন

এই এপিকে অ্যাডাব্লু ইনস্টল কমান্ড বা অন্য কোনও পদ্ধতির মাধ্যমে ইনস্টল করার জন্য প্রস্তুত

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

ডেভিড


তুমি একজন জীবন রক্ষাকারী. আমি রিলিজ বিল্ড (ত্রুটিযুক্ত কীস্টোর) নিয়ে সমস্যায় পড়ছিলাম এবং আমার পরীক্ষকদের ডিবাগ বিল্ডগুলি বিতরণ করতে চাইছিলাম।
ড্রুব্লাবস

আপনি যদি অ্যাপিয়াম ব্যবহার করছেন তবে "allowTestPackages": "true"আপনার e2e স্কিমের সক্ষমতা নির্দিষ্ট করতে হবে।
জোশুয়া পিন্টার

9

আমার ক্ষেত্রে এটি ছিল একটি এপিডিকে আপলোড করা, এটি যদিও প্রোডাক্ট সার্টিফিকেটে স্বাক্ষরিত হয়েছিল এবং এটি একটি মুক্তির বৈকল্পিক ছিল, অ্যান্ড্রয়েড স্টুডিওর রান প্লে বোতাম দ্বারা উত্পন্ন হয়েছিল। গ্রেডল থেকে বা বিল্ড এপিপি মেনু অপশন থেকে APK জেনার পরে সমস্যার সমাধান হয়েছে।


1
এটি অ্যান্ড্রয়েড স্টুডিও 3.0.০ দিয়ে ঘটতে শুরু করে এবং আপনার পরামর্শটি আমার জন্য এটি স্থির করে।
স্কাই কেলসি

9

আপনি যদি apk পরীক্ষা করতে চান তবে -tকমান্ড লাইন বিকল্পটি যুক্ত করুন।

উদাহরণ কমান্ড:

adb install -t .\app-debug.apk

4

আমি স্বীকৃত উত্তরটি দেখতে পাচ্ছি তবে আপনাকে আসলে এপিকে ধাক্কা দিতে হবে না এবং তারপরে অ্যাডবি শেল কমান্ডটি চালাতে হবে সরাসরি-অ্যাডাব্লু-টি পতাকা সহ ইনস্টল করুন

অ্যাডবি ইনস্টল -t "আপনার কম্পিউটারে এপিকে যাওয়ার পথ"

রেফারেন্সের জন্য একটি স্ক্রিনশট সংযুক্ত করা এখানে চিত্র বর্ণনা লিখুন


3

পুরানো গ্রেড সংস্করণে না ফিরে এটিকে সমাধান করা সবচেয়ে সহজ হ'ল রান কনফিগারেশনে (-২০ ইনস্টলের জন্য) '-t' বিকল্প যুক্ত করা।

কেবলমাত্র 'মিথ্যা' এর যাবতীয় প্রভাব ছিল না। গ্রেড গ্রেড প্লাগইনের আলফা সংস্করণ দ্বারা ত্রুটি ঘটেছিল যা 'কেবল পরীক্ষার উদ্দেশ্যে' ডিবাগ এপিএকে তৈরি করে। -T বিকল্পটি এ জাতীয় অ্যাপ্লিকেশন ইনস্টল করার অনুমতি দেয়। এটিকে রান কনফিগারেশনে সেট করা আপনাকে যথারীতি স্বয়ংক্রিয়ভাবে APK বানাতে সক্ষম করে।



2

এটি কারও পক্ষে কার্যকর হবে কিনা তা আমি জানি না, তবে আমি এই ত্রুটি বার্তাটি পেয়েছি, যখন আমি ঘটনাক্রমে 'gradle:2.4.0-alpha5'স্থির অ্যান্ড্রয়েড স্টুডিও সংস্করণে পরীক্ষার গ্রেড প্লাগইন ( ) সংস্করণটি দিয়ে আমার প্রকল্পটি তৈরি এবং ইনস্টল করার চেষ্টা করি ( 2.3না,2.4 preview 5 সংস্করণ আমি আগে ডাউনলোড এবং ইনস্টল করা আছে)।

আমি যখন আমার ভুল বুঝতে পেরেছিলাম, তখন আমি পূর্ববর্তী অ্যান্ড্রয়েড স্টুডিও সংস্করণ চালু করেছিলাম এবং এটি কোনও সমস্যা ছাড়াই আমার প্রকল্পটি তৈরি এবং ইনস্টল করেছে।


1

যদিও আমি নিশ্চিত যে সৌরভের উত্তর বেশিরভাগ লোকের পক্ষে কাজে আসবে, আমি আমার অ্যাপকে ইনস্টল করতে অতিরিক্ত পদক্ষেপগুলি গ্রহণ করতে চাইনি want

নিম্নলিখিত ফলাফল সহ আমি ডিভাইসে ঠেলা দেওয়ার চেষ্টা করেছি:

? adb push AppClient.TestOnly.App3.apk \tmp\
failed to copy 'AppClient.TestOnly.App3.apk' to '\tmp\': Read-only file system

ফাইল সিস্টেম আরডাব্লু অনুমতি পরিবর্তন করার জন্য কাছাকাছি দেখার পরে আমি নিম্নলিখিত কমান্ডগুলি কার্যকর করে শেষ করেছি:

? adb shell
255|shell@android:/ $ su
shell@android:/ # mount -o remount,rw /
mount -o remount,rw /

আমি আবার চাপ দেওয়ার চেষ্টা করার সময় এটি পেয়েছিলাম:

? adb push AppClient.TestOnly.App3.apk /tmp
failed to copy 'AppClient.TestOnly.App3.apk' to '/tmp': Permission denied

আমি এসডিকার্ডে চাপ দিতে সক্ষম হয়েছি:

? adb push AppClient.TestOnly.App3.apk /sdcard/
3178 KB/s (99747 bytes in 0.030s)

এই সময়ে আমি সৌরভের আদেশটি কার্যকর করতে সক্ষম হয়েছি:

shell@android:/ # pm install -t /sdcard/AppClient.TestOnly.App3.apk
pm install -t /sdcard/AppClient.TestOnly.App3.apk
        pkg: /sdcard/AppClient.TestOnly.App3.apk
Success

1
আমার যুক্ত করা উচিত যে এর কিছু অন্যদের জন্য প্রয়োজনীয় নাও হতে পারে।

অতিরিক্ত প্রচেষ্টা প্রশংসা !.
সৌরভ মেশরাম

1

আমার সন্ধানটি নীচের মতো। যদি আমি অ্যান্ড্রয়েড স্টুডিও ইউআই ব্যবহার করে সংকলন করি এবং APK উত্পন্ন হয় তবে আমি এটি করতে পারি না

adb install <xxx.apk>

এটি উত্পন্ন হবে Failure [INSTALL_FAILED_TEST_ONLY]

আমি গ্রেড অর্থাত্ এটি সংকলন করা প্রয়োজন ./gradlew app:assembleRelease। তারপরে কেবল উত্পন্ন এপিপি হবে, তবে এটি কেবল ইনস্টল করা যাবে।

এটি অ্যান্ড্রয়েড স্টুডিও ইউআই সংকলন করার কারণে, কেবলমাত্র একটি নির্দিষ্ট ডিভাইসের জন্য পরীক্ষামূলক অ্যাপ্লিকেশন তৈরি করে, অন্যদিকে সমস্ত ./gradlew app:assembleReleaseআদেশে ইনস্টল করার জন্য কমান্ডটি আসল এপিপি প্রজন্ম (এবং প্লেস্টোরে আপলোড করা হয়) is


ইস্যুটির আরও ভাল বোঝার জন্য মাঝারি.com/@elye.project/… এ বোঝায় ।
এলি

1

দলিল হিসাবে উল্লিখিত :

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

সুতরাং, আপনার APK টি ইনস্টল করতে সক্ষম হতে আপনার adb install <path to apk file>টার্মিনাল থেকে বিল্ড একত্র করতে হবে: ./gradlew assembleDebugএবং অ্যাডবি দিয়ে ইনস্টল করুন। বা কেবল ./gradlew installDebugএকই সাথে ডিভাইসে বিল্ড এবং ইনস্টল করতে চালান ।


1

আমার জন্য এটি গ্রেড টাস্ক 'ক্লিন' সম্পাদনের কাজ করেছে (এর অধীনে: অ্যাপ্লিকেশন, গ্রেডল ফলকে, সাধারণত ডানদিকে অবস্থিত) এবং আবার প্রকল্পটি চালায়।


1

নিম্নলিখিত হিসাবে অ্যান্ড্রয়েড স্টুডিও থেকে আপনার বিতরণ .apk তৈরি করুন

বিল্ড -> বিল্ড Apk (গুলি) (স্বাক্ষরিত বিল্ডের জন্য) বিল্ড -> স্বাক্ষরিত এপিএকে উত্পন্ন করুন (স্বাক্ষরিত বিল্ডের জন্য)

এই বিকল্পগুলি এপিডিকে অ্যান্ড্রয়েড দিয়ে তৈরি করে: টেস্টঅনলি = "ভুয়া" বিকল্প যা আপনাকে কম্যান্ডের মাধ্যমে ডিভাইসে স্পষ্টতই APK ইনস্টল করতে দেয়।

adb yourBuilT.apk ইনস্টল করুন


1

কি আমার জন্য কাজ কার্য সম্পাদন করে তা Refresh all Gradle projectsথেকে Gradleডান মেনু থেকে টুলবার।

অ্যান্ড্রয়েড স্টুডিওর স্ক্রিনশট পিএফবি।

  1. Gradleডান মেনু থেকে সরঞ্জামদণ্ড নির্বাচন করুন ।
  2. Refreshআইকনটি নির্বাচন করুন

এটি আমার জন্য সমস্যাটি সমাধান করেছে।

অ্যান্ড্রয়েড স্টুডিওর স্ক্রিনশট


ধন্যবাদ বন্ধু. এটি অ্যান্ড্রয়েড গ্রেডেলকে ৪-এ উন্নীত করার পরে শুরু হয়েছিল অ্যান্ড্রয়েড স্টুডিও থেকে সরাসরি অ্যাপ্লিকেশন স্থাপন ভালভাবে কাজ করে তবে টার্মিনালটি ব্যবহার না করে (অ্যাডবি ইনস্টল ইত্যাদি ..) আপনি যেমন উল্লেখ করেছেন গ্রেডটি সতেজ করার পরে এটি কাজ করেছে।
ব্যবহারকারী3193413

@ user3193413 নিস পোস্টে শুনতে সাহায্যের ছিল
সুনীল

0

আমি একাধিক এপিপি সহ বহিরাগত প্রকল্প চেষ্টা করেছি।

স্টুডিও থেকে প্রাপ্ত কমান্ডটি দেখে মনে হয়েছিল

adb install-multiple -r ....

সমাধান -

  • কনসোল নির্বাচন করুন
  • aste কমান্ড সহ -t

0

প্রথমে অস্থির সংস্করণটি সরান:

adb uninstall সমস্যাযুক্ত-প্যাকেজ-নাম

; এবং তারপরে এপিকে পুনরায় ইনস্টল করুন।



0

আমার ক্ষেত্রে, অ্যান্ড্রয়েড স্টুডিও ৪.০ ব্যবহার করে নীচে সমস্যাটি সমাধান করেছে;

'গ্রেড.প্রেপার্টি' ফাইলটিতে যুক্ত করুন;

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