我有两个应用程序:第一个是远程服务。它的表现是:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mecom.framework"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name="SettingsActiviry"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service android:name=".ParserService"
android:process=":remote"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="com.mecom.framework.parser.interfaces.Parser" />
<action android:name="com.mecom.framework.PARSE" />
<category android:name="com.mecom.framework.PARSE" />
</intent-filter>
</service>
</application>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
</manifest>
第二个绑定到这个服务并执行一个方法。很明显:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mecom.berlingske"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name" android:theme="@android:style/Theme.Light">
<activity android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/BerlingskeMainTheme"
android:configChanges="keyboard|keyboardHidden|orientation">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".ArticleActivity"
android:label="@string/article"
android:theme="@style/BerlingskeMainTheme"
android:configChanges="keyboard|keyboardHidden|orientation"/>
</application>
</manifest>
现在奇怪的是,这些应用程序在 Android 2.1 的模拟器和我的 Cyanogen 7 (Android 2.3.2) 的根深蒂固的 HTC Hero 上运行得非常好。
但它在 HTC Desire HD 和 Nexus S 上引发以下异常(均未植根):
W/dalvikvm( 2990): threadid=8: thread exiting with uncaught exception (group=0x40025a70)
03-18 13:19:04.051: ERROR/AndroidRuntime(2990): FATAL EXCEPTION: AsyncTask #1
03-18 13:19:04.051: ERROR/AndroidRuntime(2990): java.lang.RuntimeException: An error occured while executing doInBackground()
03-18 13:19:04.051: ERROR/AndroidRuntime(2990): at android.os.AsyncTask$3.done(AsyncTask.java:200)
03-18 13:19:04.051: ERROR/AndroidRuntime(2990): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
03-18 13:19:04.051: ERROR/AndroidRuntime(2990): at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
03-18 13:19:04.051: ERROR/AndroidRuntime(2990): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
03-18 13:19:04.051: ERROR/AndroidRuntime(2990): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
03-18 13:19:04.051: ERROR/AndroidRuntime(2990): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
03-18 13:19:04.051: ERROR/AndroidRuntime(2990): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
03-18 13:19:04.051: ERROR/AndroidRuntime(2990): at java.lang.Thread.run(Thread.java:1102)
03-18 13:19:04.051: ERROR/AndroidRuntime(2990): Caused by: java.lang.NullPointerException
03-18 13:19:04.051: ERROR/AndroidRuntime(2990): at android.os.Parcel.readException(Parcel.java:1253)
03-18 13:19:04.051: ERROR/AndroidRuntime(2990): at android.os.Parcel.readException(Parcel.java:1235)
03-18 13:19:04.051: ERROR/AndroidRuntime(2990): at com.mecom.framework.parser.interfaces.Parser$Stub$Proxy.getArticlesList(Parser.java:174)
03-18 13:19:04.051: ERROR/AndroidRuntime(2990): at com.mecom.berlingske.NewsListActivity$AsyncGetArticlesTask.doInBackground(NewsListActivity.java:139)
03-18 13:19:04.051: ERROR/AndroidRuntime(2990): at com.mecom.berlingske.NewsListActivity$AsyncGetArticlesTask.doInBackground(NewsListActivity.java:1)
03-18 13:19:04.051: ERROR/AndroidRuntime(2990): at android.os.AsyncTask$2.call(AsyncTask.java:185)
03-18 13:19:04.051: ERROR/AndroidRuntime(2990): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
03-18 13:19:04.051: ERROR/AndroidRuntime(2990): ... 4 more
我可以提供更多代码(例如 AsyncTask 的实现),但事实上,这段代码至少在两种情况下都有效,这让我想知道,这里可能有什么问题。有任何想法吗?
UPD:刚刚在该设备上安装了我的另一个使用 IPC 的应用程序,同样的问题。从市场上安装它 - 工作正常。签署了我当前的应用程序,然后重新安装它。没有帮助。对我的另一个应用程序做了同样的事情——也没有帮助。在这些设备上测试我的应用程序的唯一方法是将其部署到市场吗?