安装错误:INSTALL_FAILED_OLDER_SDK

新手上路,请多包涵

我是 Android 开发新手,我想首先让 Hello World 应用程序运行。我正在使用 Eclipse IDE 和 Android 4.0.3 版本 15 SDK。我从教程站点复制了所有内容,但是当我尝试在 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 包中的类: package 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

问题是什么?

编辑:该应用程序未在虚拟设备上运行:这是我在 LogCat 上得到的(某些行):

 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

原文由 Dragos 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

这是由于清单文件中的 android:targetSdkVersion="@string/app_name"

将其更改为:

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

targetSdkVersion 应该是一个整数,但 @string/app_name 应该是一个字符串。我认为这会导致错误。

编辑:

您必须在 manifiest 文件中为活动添加默认的 intent-filter 。然后只有android可以启动活动。否则,您将在控制台窗口中收到以下错误。

 [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>

原文由 Karthik 发布,翻译遵循 CC BY-SA 3.0 许可协议

在我们使用 Flutter 的案例中,我们的一些插件需要最低 API 级别 23(Android 6.1),因此一些旧设备无法安装我们的应用程序。例如,华为 Android 5.1 设备无法安装该应用程序,因为 Flutter 项目的几个插件要求最低 API 23 或 Android 版本 6.1 。

在这种情况下制定解决方案:

  1. 或者,删除这些插件以使您的应用与旧手机兼容
  2. 或者,继续使用可能会失去旧设备用户的高 API 要求的 Flutter 插件。

Installed_Failed_Older_SDK

原文由 Farial Mahmod 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题