Ошибка совместимости Android - PullRequest
0 голосов
/ 01 апреля 2011

У меня есть написанное Android-приложение через Eclipse, которое было протестировано / работает как на эмуляторе, так и на аппаратных устройствах для версий 1.5, 1.6 и 2.1 (хотя Target Build был установлен только для 1.5)

Приложению не удалось инициализироваться на любой версии более 2.1 на эмуляторе и на аппаратных устройствах.

Кажется, что все связанные сообщения указывают на минимальную и целевую версии SDK. Сначала я попытался изменить Target Build с 1.5 до 2.3.1 и включил теги min / target sdk xml, но это не помогло.

Прилагается файл ошибок отладки (эта ошибка возникает только в эмуляторах / телефонах> 2.1). Есть предложения?

04-01 03: 46: 40.760: ОШИБКА / AndroidRuntime (335): ИСКЛЮЧИТЕЛЬНОЕ ИСКЛЮЧЕНИЕ: основное 04-01 03: 46: 40.760: ОШИБКА / AndroidRuntime (335): java.lang.RuntimeException: невозможно запустить действие ComponentInfo {com.test.project / com.test.project.Main}: java.lang.NullPointerException 04-01 03: 46: 40.760: ОШИБКА / AndroidRuntime (335): в android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2663) 04-01 03: 46: 40.760: ОШИБКА / AndroidRuntime (335): на android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2679) 04-01 03: 46: 40.760: ОШИБКА / AndroidRuntime (335): на android.app.ActivityThread.access $ 2300 (ActivityThread.java:125) 04-01 03: 46: 40.760: ОШИБКА / AndroidRuntime (335): в android.app.ActivityThread $ H.handleMessage (ActivityThread.java:2033) 04-01 03: 46: 40.760: ОШИБКА / AndroidRuntime (335): на android.os.Handler.dispatchMessage (Handler.java:99) 04-01 03: 46: 40.760: ОШИБКА / AndroidRuntime (335): на android.os.Looper.loop (Looper.java:123) 04-01 03: 46: 40.760: ОШИБКА / AndroidRuntime (335): на android.app.ActivityThread.main (ActivityThread.java:4627) 04-01 03: 46: 40.760: ОШИБКА / AndroidRuntime (335): в java.lang.reflect.Method.invokeNative (собственный метод) 04-01 03: 46: 40.760: ОШИБКА / AndroidRuntime (335): в java.lang.reflect.Method.invoke (Method.java:521) 04-01 03: 46: 40.760: ОШИБКА / AndroidRuntime (335): на com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:868) 04-01 03: 46: 40.760: ОШИБКА / AndroidRuntime (335): на com.android.internal.os.ZygoteInit.main (ZygoteInit.java:626) 04-01 03: 46: 40.760: ОШИБКА / AndroidRuntime (335): в dalvik.system.NativeStart.main (собственный метод) 04-01 03: 46: 40.760: ОШИБКА / AndroidRuntime (335): вызвано: java.lang.NullPointerException 04-01 03: 46: 40.760: ОШИБКА / AndroidRuntime (335): на android.view.ViewConfiguration.get (ViewConfiguration.java:211) 04-01 03: 46: 40.760: ОШИБКА / AndroidRuntime (335): на android.view.View. (View.java:1814) 04-01 03: 46: 40.760: ОШИБКА / AndroidRuntime (335): на android.widget.ImageView. (ImageView.java:103) 04-01 03: 46: 40.760: ОШИБКА / AndroidRuntime (335): в com.test.project.Main $ EfficientAdapter. (Main.java:34) 04-01 03: 46: 40.760: ОШИБКА / AndroidRuntime (335): на com.test.project.Main.onCreate (Main.java:150) 04-01 03: 46: 40.760: ОШИБКА / AndroidRuntime (335): на android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1047) 04-01 03: 46: 40.760: ОШИБКА / AndroidRuntime (335): на android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2627)

 <uses-sdk android:minSdkVersion="3"/>
 <uses-permission android:name="android.permission.CALL_PHONE"/>
 <uses-permission android:name="android.permission.INTERNET"/>


 <application
      android:theme="@android:style/Theme.NoTitleBar" 
      android:icon="@drawable/icon" 
      android:label="@string/icon" 
      android:debuggable="true">

      <activity 
           android:name="Main"
           android:label="@string/app">

           <intent-filter>

                 <action android:name="android.intent.action.MAIN"/>

                 <category android:name="android.intent.category.LAUNCHER"/>

           </intent-filter>

      </activity>

      <activity android:name="CampusMapActivity"/>
      <activity android:name="FacultyActivity"/>
      <activity android:name="PhoneActivity"/>
      <activity android:name="RSSActivity"/>

 </application>

1 Ответ

0 голосов
/ 03 апреля 2011

Пожалуйста, не отвечайте на этот вопрос.

Я обнаружил ошибку в своих способах.

Я использовал пример List14.java, предоставленный в демонстрационных версиях API Android Develpor.

Я упустил из виду, что статический класс Viewholder () уже предоставляет атрибут text / icon.Я объявлял свою собственную (дополнительную / ненужную) переменную значка, которая конфликтовала с Viewholder ().

Что меня удивляет, так это то, что эмуляторы телефонов дают сбой только при использовании 2.2 и выше.1.5 - 2.1 телефоны Android игнорируют ???ошибка.

В любом случае, удалив конфликтующую переменную, приложение работает на всех эмуляторах

...