ইনস্টলেশন ত্রুটি: INSTALL_FAILED_OLDER_SDK


88

আমি অ্যান্ড্রয়েড বিকাশে নতুন এবং আমি প্রথমে Hello Worldঅ্যাপ্লিকেশনটি চালিত করতে চাই। আমি Eclipse IDE এবং Android 4.0.3 সংস্করণ 15 এসডিকে ব্যবহার করছি। আমি টিউটোরিয়াল সাইট থেকে সমস্ত কিছু অনুলিপি করেছিলাম, কিন্তু যখন আমি অ্যাপ্লিকেশনটি চালানোর চেষ্টা করি তখন আমি virtual deviceএই ত্রুটিটি পাই:

[2012-02-01 11:31:23 - Android_test] Installation error: INSTALL_FAILED_OLDER_SDK
[2012-02-01 11:31:23 - Android_test] Please check logcat output for more details.
[2012-02-01 11:31:23 - Android_test] Launch canceled!

com.maze.appপ্যাকেজে আমার ক্লাসটি এখানে রয়েছে : প্যাকেজ com.maze.app;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class HelloAndroid extends Activity{
  @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        TextView tv = new TextView(this);
        tv.setText("Hello, Android");
        setContentView(tv);

    }

}

এবং AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.maze.app"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk android:minSdkVersion="15" android:targetSdkVersion="@string/app_name"/>

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
    <activity android:name="HelloAndroid" android:launchMode="standard" android:enabled="true"></activity>
</application>

এখানে কনফিগারেশন রয়েছে Virtual Device:

Name: AndroidVD
CPU/ABI: ARM(armeabi-v7a)
Path: path\to\avd
Target: Android 4.0.3(API level 15)
Skin: WVGA800
hw.lcd.density: 240
hw.cpu.model: cortex-a8
vm.heapSize: 48
hw.ramSize:512

সমস্যাটা কি?

সম্পাদনা: ভার্চুয়াল ডিভাইসে অ্যাপ্লিকেশনটি চলছে না: লগগেটে (পংক্তির কয়েকটি) আমি যা পেয়েছি তা এখানে:

D/PackageManager(92): New package installed in /data/app/com.maze.app-2.apk
D/dalvikvm(92): GC_CONCURRENT freed 660K, 9% free 11935K/12999K, paused 18ms+72ms
I/ActivityManager(92): Force stopping package com.maze.app uid=10040
D/BackupManagerService(92): Received broadcast Intent { act=android.intent.action.PACKAGE_REPLACED dat=package:com.maze.app flg=0x10000010 (has extras) }
V/BackupManagerService(92): updatePackageParticipantsLocked: com.maze.app

আপনার ম্যানিফিয়েস্ট ফাইলটিতে android:targetSdkVersion="@string/app_name"উল্লেখ করা হয়েছে। এটা কি টাইপো?
কার্তিক

@ কার্তিক না, এটি কোনও টাইপ নয়। উইজার্ডটি এটাই তৈরি করেছিল।
ড্রাগোস

উত্তর:


113

এটি android:targetSdkVersion="@string/app_name"আপনার মেনিফেস্ট ফাইলের কারণে ।
এটিকে পরিবর্তন করুন:

<uses-sdk android:minSdkVersion="15" android:targetSdkVersion="15"/>

targetSdkVersionএকটি পূর্ণসংখ্যা হওয়া উচিত, কিন্তু @string/app_nameএকটি স্ট্রিং হতে হবে। আমি মনে করি এটি ত্রুটি ঘটায়।

সম্পাদনা: ক্রিয়াকলাপের জন্য আপনাকে আপনার ফাইলে
একটি ডিফল্ট যুক্ত intent-filterকরতে manifiestহবে। তবে কেবল অ্যান্ড্রয়েডই ক্রিয়াকলাপটি চালু করতে পারে। অন্যথায় আপনি আপনার কনসোল উইন্ডোতে নীচের ত্রুটি পাবেন।

[2012-02-02 09:17:39 - Test] No Launcher activity found!
[2012-02-02 09:17:39 - Test] The launch will only sync the application package on the device!

আপনার <activity>ট্যাগটিতে নিম্নলিখিতগুলি যুক্ত করুন ।

<activity android:name="HelloAndroid" android:launchMode="standard" android:enabled="true">  
  <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
  </intent-filter>
</activity>

ধন্যবাদ! এখন আর ত্রুটি পাই না। তবে ভার্চুয়াল ডিভাইস শুরু হয় এবং এটি আমাকে দেখায় না Hello Android। আমাকে কি কোনওভাবে এটি শুরু করতে হবে? যদি হ্যাঁ, কিভাবে? যদি তা না হয় তবে কেন এটি কাজ করছে না?
ড্রাগগোস

আপনি যদি গ্রহপ থেকে চালনা করেন তবে অ্যাপ্লিকেশনটি স্বয়ংক্রিয়ভাবে ইনস্টলেশন পরে শুরু হবে। সুতরাং ক্রিয়াকলাপটি এভিডি স্ক্রিনে প্রদর্শিত হবে। যখন এভিডি শুরু হবে, এটি লকড স্টেটে (স্ক্রীন লক) হবে, একবার আপনি স্ক্রিনটি আনলক করলে আপনি Hello Androidপাঠ্যটি দেখতে পাবেন ।
কার্তিক

হ্যাঁ, এটি লক অবস্থায় শুরু হয়, তবে আমি যখন এটি আনলক করি তখন এটি আমাকে কেবল ওয়ালপেপার এবং নীচে কিছু আইকন দেখায়। নেই Hello Android
ড্রাগগোস

লগক্যাটে কোনও ত্রুটি? আপনি onCreate () এ কিছু লগ স্টেটমেন্ট যুক্ত করতে পারেন এবং সেগুলি লগক্যাট উইন্ডোতে দেখানো হয়েছে কিনা তা দেখুন।
কার্তিক

আপনি যদি Logcatএকে একে ConsoleEclipse এর অর্থ দিয়ে থাকেন তবে উত্তরটি হয় না। আমি কোন ত্রুটি পাই না। আপনি যদি লগক্যাট দ্বারা বোঝাতে চেয়েছিলেন তা না হয় তবে দয়া করে আমাকে এটি কোথায় পাওয়া যাবে তা বলুন।
ড্রাগগোস

26

এর অর্থ কোডটি সংকলন করতে ব্যবহৃত সংস্করণটির তুলনায় আপনার এভিডির অ্যান্ড্রয়েডের সংস্করণটি পুরানো


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

16

এই ত্রুটিটি ঘটে যখন android:minSdkVersionআপনার অ্যান্ড্রয়েড ম্যানিফেস্টের তুলনায় আপনার ডিভাইসে ইনস্টল করা এসডিকে-সংস্করণ (বাস্তব বা ভার্চুয়াল ডিভাইস) ছোট হয় is

হয় আপনাকে নিজের হ্রাস করতে হবে android:minSdkVersionঅথবা আপনাকে আপনার এভিডির জন্য উচ্চতর এপিআই-সংস্করণ নির্দিষ্ট করতে হবে।

মনে রাখবেন যে এটি হ্রাস android:minSdkVersionকরা সর্বদা তুচ্ছ নয় কারণ আপনাকে নিশ্চিত করতে হবে, আপনার অ্যাপ্লিকেশন প্রকৃত ইনস্টল হওয়া এপিআই সম্পর্কে যত্নশীল এবং সঠিক পদ্ধতিগুলি ব্যবহার করে:

AsyncTask<String, Object, String> task = new AsyncTask<String, Object, String>() {
    @Override
    protected Boolean doInBackground(String... params) {
        if (params == null) return "";
        StringBuilder b = new StringBuilder();
        for (String p : params) {
             b.append(p);
        }
        return b.toString();
    }
};
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
    task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR,"Hello", " ", "world!");
} else {
    task.execute("Hello", " ", "world!");
}

অ্যান্ড্রয়েড-সমর্থন-লাইব্রেরি এবং / অথবা অ্যাকশনবার-শারলকের মতো লাইব্রেরিগুলি আপনাকে বিশেষত পুরানো সংস্করণগুলির উইজেটগুলির সাথে কাজ করতে সহায়তা করবে।


13

আমি অ্যান্ড্রয়েড স্টুডিও 0.8.1 ব্যবহার করছি। আমার নীচের মতো একটি প্রকল্পের গ্রেড ফাইল রয়েছে:

android {
    compileSdkVersion 19
    buildToolsVersion "20.0.0"

    defaultConfig {
        applicationId "com.omersonmez.widgets.hotspot"
        minSdkVersion 15
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

আমার এমুলেটরটি অ্যান্ড্রয়েড ৪.০ ছিল। সুতরাং আমি আমার এমুলেটরটি সংশোধন করে এপিআই স্তর তৈরি করেছি 4.0.3 (অ্যাপিলিভেল 15)। এটা কাজ করেছে.


3

আমি এখানে বর্ণিত সমস্ত প্রতিক্রিয়াগুলি চেষ্টা করেছি তবে আমার সমাধানটি আমার build.gradleফাইলের ভিতরে minSdkVersion8 থেকে 9 পর্যন্ত পরিবর্তিত হয়েছিল কারণ আমার প্রকল্পের কিছু লাইব্রেরি এপিআই 8 এর সাথে কাজ করতে পারে না, এটাই বার্তার কারণ ছিল INSTALL_FAILED_OLDER_SDK:

apply plugin: 'com.android.application'

    android {
        compileSdkVersion 22
        buildToolsVersion "22.0.1"

        defaultConfig {
            applicationId "com.tuna.hello.androidstudioapplication"
            minSdkVersion 9
            targetSdkVersion 22
            versionCode 1
            versionName "1.0"
        }
...
...
...

এটি দেখে মনে হচ্ছে এটি কিছু অন্তর্ভুক্ত লাইব্রেরির ন্যূনতম এসডিকে 9
অনুবাদ করেছে

1

আমার ক্ষেত্রে আমি এন্ড্রয়েড ম্যানিফেস্ট.এক্সএমএল ফাইলটিতে থাকা একটি প্রকল্প সম্পাদনা করেছি এবং যা রানটাইমের সময় উপরের ত্রুটিটি দিয়েছিল:

<uses-sdk
    android:minSdkVersion="17"
    android:targetSdkVersion="17" />

আমি যা করেছি তা হ'ল minSdkVersion = "17", minSdkVersion = "16" এ পরিবর্তন করা। আমার ফলাফল ট্যাগ ছিল:

<uses-sdk
    android:minSdkVersion="16"
    android:targetSdkVersion="17" />

এখন আমি আর ত্রুটি পাচ্ছি না ..

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


1

একই ত্রুটিটি পেয়েছে, এভিডির ব্যবহার করা অ্যান্ড্রয়েড এসডিকে যে সংস্করণ এবং অ্যান্ড্রয়েডমেনিস্ট ফাইলের সংস্করণ ছিল তার মধ্যে পার্থক্য ছিল। আমি এটি সংশোধন করে সমাধান করতে পারে

অ্যান্ড্রয়েড: minSdkVersion = "16"

এভিডির সাথে মেলে


1

আপনি যদি এমন একটি এপিপি ব্যবহার করে নির্মিত হয়েছিল তা ইনস্টল করার চেষ্টা করছেন তবে আপনি একই ত্রুটি দেখতে পাবেন

compileSdkVersion "android-L"

এমনকি ডিভাইসগুলির জন্য Android 5.0 এর চূড়ান্ত সংস্করণ চালাচ্ছে for কেবল এটিকে পরিবর্তন করুন

compileSdkVersion 21

1

নতুন অ্যান্ড্রয়েড 6.0 মার্শমালোয়ের জন্য ঠিক করুন যখন আমি বিল্ড সরঞ্জামগুলির সংস্করণটি 23.0.0 এ আপডেট করে এপিআই 23 (অ্যান্ড্রয়েড 6.0 মার্শমেলো) আপডেট করেছি:

android {
    buildToolsVersion '23.0.0'
...

এবং ফাইল> প্রকল্পের কাঠামোতে যান , বৈশিষ্ট্যগুলি ট্যাব নির্বাচন করে তারপরে সংকলিত এসডিকে সংস্করণটিকে "এপিআই 23: অ্যান্ড্রয়েড 5. এক্স (এমএনসি)" এবং বিল্ড সরঞ্জাম সংস্করণকে "23.0.0" এ আপডেট করেছেন


0

আমি অ্যান্ড্রয়েড স্টুডিওতে আছি। আমি এই ত্রুটিটি পেয়েছি যখন মিনিট / টার্গেটএসডি কে ভার্সন 17 এ সেট করা হয়েছিল this চিত্রে যান.. :(

    android:minSdkVersion="17"
    android:targetSdkVersion="17" />

0

আপনার বিল্ড.gradle যাচাই করে দেখুন এবং এটি আপনার এভিডিতে ইনস্টল করা থেকে নতুন এসডিকে সংস্করণ ব্যবহার করে না তা নিশ্চিত করুন। এটি কেবলমাত্র যদি আপনি অ্যান্ড্রয়েড স্টুডিও ব্যবহার করেন।


0

আপনি যদি আমার মতো সম্পূর্ণ নতুন হন তবে আপনাকে প্রথমে সর্বনিম্ন এসডিকে ইনস্টল করতে হবে। লিঙ্কটি পরীক্ষা করুন।

এটি আমার পক্ষে নিখুঁতভাবে কাজ করেছে:

একই সমস্যা অন্য পোস্টে একটি ভাল সমাধান সঙ্গে

শুভেচ্ছা,

খালেদ।


0

আমার সমাধানটি ছিল রান কনফিগারেশনের moduleড্রপ-ডাউন তালিকাটি এ থেকে পরিবর্তন wearableকরা android. (যখন আমি গুগলের আই / ও শিডিউল ওপেন-সোর্স অ্যাপ্লিকেশন চালানোর চেষ্টা করছিলাম তখন আমার মধ্যে এই ত্রুটি ঘটেছে।) যতক্ষণ না আমি চালাবার চেষ্টা করেছি ততবার স্বয়ংক্রিয়ভাবে কনফিগারেশনগুলি পপআপ করবে would পরিবর্তিত moduleকরতে android

আপনি Run-> Edit Configurations...-> Generalট্যাব -> এ গিয়ে কনফিগারেশনগুলি অ্যাক্সেস করতে পারেনModule: [drop-down-list-here]


0

আমি দেখেছি যে ম্যানিফেস্টে প্রস্তাবিত পরিবর্তন করা আমার সমস্যার সমাধান করেনি।

মডিউল: অ্যাপ্লিকেশনটির জন্য build.gradle ফাইলে গ্রেডল স্ক্রিপ্টস ফোল্ডারে ফিক্সটি পাওয়া গেছে।

এই ফাইলের ভিতরে (build.gradle) নিম্নলিখিত লাইনটি সংশোধন করা হয়েছিল। minSdkVersion 22 আমি আমার বিশেষ ফোনের জন্য এই '22' মানটি '19' তে পরিবর্তন করেছি এবং বিল্ডটি ত্রুটি ছাড়াই শেষ হয়েছে।


0

সাথী, আমার পরামর্শটি ভার্চুয়াল ডিভাইস পরিবর্তন করা। "জেনিমোশন" অ্যাপ্লিকেশনটি ডাউনলোড করুন, এটি ব্যবহার করা সহজ এবং আপনার প্রয়োজনীয় যে কোনও ডিভাইস রয়েছে


0

আপনার প্রকল্পের build.cradleফাইলে যান এবং যুক্ত করুন

defaultConfig {
    minSdkVersion versions.minSdk

``

এটি এটি করে তোলে যে আপনার অ্যাপ্লিকেশনটি আপনার ডিভাইসটি চলছে এমন সর্বনিম্ন এসডিকে মেনে চলে।


-1

আয়নিক অ্যান্ড্রয়েড এমুলেটর ত্রুটি INSTALL_FAILED_OLDER_SDK

সুতরাং, মূলত এর অর্থ হ'ল আপনার অ্যাপ্লিকেশনে নির্দিষ্ট করা টার্গেটএসডক ভার্সন (এটি একটি গ্রেডল সমস্যা) এর চেয়ে পুরানো এসডিকে সংস্করণ থাকার কারণে ইনস্টলেশনটি ব্যর্থ হয়েছে। কেবলমাত্র AndroidManLive.xML ফাইল সম্পাদনা করুন এবং নিম্নলিখিত কোডটি যুক্ত করুন:

<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="14"/>

সমাধানের সন্ধানের জন্য বেশ কয়েক দিন পরে, এটিই।

আমার জন্য কাজ করে!


-1

যদি ত্রুটি "ইনস্টলেশন ত্রুটি: INSTALL_FAILED_OLDER_SDK" প্রদর্শিত হয়, আপনাকে অবশ্যই অ্যান্ড্রয়েড ম্যানিফেস্টে মিনিএসডিকি ভার্সনের সংস্করণটি অ্যান্ড্রয়েড এমুলেটরটিতে নির্দিষ্ট করাতে পরিবর্তন করতে হবে: সেটিংস -> ফোন সম্পর্কে -> অ্যান্ড্রয়েড সংস্করণ দেখুন।


4
হাই @ কাপোমা ৫৮, স্বাগতম এটি কীভাবে আলাদা যে অন্য উত্তর দেয়?
টিয়াগো মার্টিনস পেরেস

-2

আমি আমার পরিবর্তন করেছি android:minSdkVersionএবং android:targetSdkVersionকরতে 18থেকে 21:

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

এখন আমি আমার অ্যাপটি সফলভাবে ইনস্টল করতে পারি can

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