我写了一个应用程序,并在LG Ally上测试了以下规格:
的
Android版: 2.2.2
内核版本: 2.6.32.9
内部版本号: FRG83G
的 现在我正在尝试使用以下规范在HTC上安装它(通过adb install AppName.apk):
的
Android版: 2.3.3
内核版本: 2.6.35.10-gc0a661b HTC-kernel @和18-2#1
内部编号: 4.24.651.1 CL61076
的
我收到错误,例如'错误解析包'
这是我感到困惑的地方。我想尝试复制问题。所以我用规格创建了一个模拟器AVD:
的
Android版: 4.0.3
内核版本: 2.6.29-g46b05b2 vchtchetkine @ vc-irv#28
内部版本号: google_sdk-eng 4.0.4 MR1 302030测试密钥
的
并且....我可以使用adb install命令成功安装我的应用程序,该命令不会在HTC上安装该应用程序。
我不明白为什么我可以使用'adb install'把它放在LG Ally和模拟器上,但我在HTC上得到了解析错误。
我认为我可能需要在AndroidManifest中,但为什么我可以在没有它的情况下在模拟器上安装?
我的清单如下(我为了简洁而删除了活动定义):
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mj.molepatrol"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<uses-library android:name="com.google.android.maps" />
</application>
<uses-permission
android:name="android.permission.READ_CALENDAR">
</uses-permission>
<uses-permission
android:name="android.permission.WRITE_CALENDAR">
</uses-permission>
<uses-permission
android:name="android.permission.EDIT_CALENDAR">
</uses-permission>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
</manifest>
答案 0 :(得分:1)
尝试使用
<uses-sdk android:minSdkVersion="10">
它将解决您的问题。因为,我阅读了有关uses-sdk的文档,
警告:如果您未声明此(使用-sdk android:minSdkVersion)属性,系统将采用默认值“1”,表示您的应用程序与所有版本的Android。如果您的应用程序与所有版本不兼容(例如,它使用API级别3中引入的API)并且您尚未声明正确的minSdkVersion,那么当安装在API级别小于3的系统上时,应用程序将在崩溃期间崩溃尝试访问不可用的API时的运行时。因此,请务必在minSdkVersion属性中声明相应的API级别。
答案 1 :(得分:0)
可能出现的问题是您使用的是设备无法使用的功能。如相机或NFC。
您只设置了minSdkVersion
和targetSdkVersion
吗?
htc不喜欢清单中的内容,请发布您的 AndroidManifest.xml 文件,以便我们查看具体信息并为您解决