本文共 2417 字,大约阅读时间需要 8 分钟。
打出的android APK在android4.0.2手机上运行正常,但是在2.3.7的MOTO DEFY ME525上运行失败。
android 2.3.3版本的模拟器上面运行失败: 1 2 | <span style= "font-size: 13px;" >Sorry! The application HaochuangApp(process.hao.app.HaochuangApp)has stopped unexpectedly.Please try again. </span> |
找解决办法:
1.怀疑版本问题:检查 project.properties 文件:Project target=10打开工程中project.properties文件,找到target=android-10,确保是当前的SDK版本。检查 AndroidManifest.xml 文件:2.在AndroidManifest.xml中,也修改了最小兼容版本号对应的2.3版本。 <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="10"/>怀疑是导入的sdk依赖包的问题,目前还是4.1.2,重新导入2.3.3,但是却又报如下错误:android-apt-compiler: [android] E:\DevSpace\IntelliJ_Space\android\res\values\style.xml:3: error: Error retrieving parent for item: No resource found that matches the given name 'android:Theme.Holo.Light.DarkActionBar'.android-apt-compiler: [android] error: Error retrieving parent for item: No resource found that matches the given name 'android:Theme.Holo.Light.DarkActionBar'.问题出在这里:android:Theme.Holo.Light.DarkActionBar。由于 android 2.3 不支持该风格。所以需要修改该风格。在android官方API-10中查询,DarkActionBar 见 http://developer.android.com/reference/android/R.style.html好,那就修改res/values/styles.xml文件: 1 2 3 4 5 6 7 8 9 10 11 | <span style= "font-size: 13px;" ><?xml version= "1.0" encoding= "utf-8" ?> <resources> <style name= "AppTheme" parent= "@android:Theme.Light" > </style> <style name= "myactionMenuTextAppearance" parent= "@android:style/TextAppearance" > <item name= "android:textSize" >50sp</item> <item name= "android:textStyle" >bold</item> </style> </resources> </span> |
不过后来发现API-10也不支持Fragment。看来要在2.3.7的手机上运行,只有两种办法:
1.升级手机操作系统,刷机到新的android版本,如4.1.2等;2.修改该App,使用 2.3.7等API-10支持的库。另外,补充一下:
android中;minSdkVersion、targetSdkVersion、target
在 AndroidManifest.xml中, <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="10"/>在project.properties中, target=android-10Android API 是向后兼容的,"android:minSdkVersion"是最小的 SDK 版本,这个值是对应 Android 不同版本的 API Level。如 Android 1.5 对应 3,Android 1.6 对应 4,Android 2.1 对应7,Android2.2对应8 ,Android 2.3.3 对应10,等等...当用户指定这个值后,Android 系统会用这个指定的值对应的 SDK 版本去编译你的应用程序。当我们在 androidManifest.xml 中指定的话,必须是比我们新建时的 API Level 小或相等的值,这样 Android 系统在编译的时候,才会用对应的版本的 SDK 进行编译。假如修改后的 android:minSdkVersion 比我们 project 里的 SDK 版本对应的 API level 大,那么Android 系统在编译的时候,就会报错。