android: не найдена ошибка определения класса из проекта библиотеки - PullRequest
5 голосов
/ 18 апреля 2011

я получаю исключение noclassdeffound при запуске моего приложения с эмулятором:

@Override
public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    Intent myIntent = new Intent(ActivityPano.this, ActivityTable.class);
    startActivity(myIntent);
}

ActivityTable вызывает исключение.

оно определено в проекте библиотеки Android,который я включил в путь сборки Java, а также в диалоге ссылок Android.в затмении ошибок нет, но при запуске в эмуляторе он вылетает.

вот мой манифест:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.mypackage"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name" android:theme="@android:style/Theme.NoTitleBar" android:debuggable="false" android:description="@string/description">
        <activity android:name=".ActivityHPanorama"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>


        <activity android:name="com.mypackage.ActivityTable"></activity>

    </application>


<uses-sdk android:minSdkVersion="3"></uses-sdk>
</manifest> 

это ошибка из logcat:

04-18 11:32:07.767: ERROR/dalvikvm(483): Could not find class com.mypackage.ActivityTable', referenced from method com.mypackage.ActivityHPanorama.onCreate

что меня немного подозревает, так это строка из консоли (не logcat):

[2011-04-18 14:55:59 - panorama] Could not find panorama.apk!

Panorama - это имя библиотечного проекта.

Ответы [ 4 ]

1 голос
/ 18 апреля 2011

Если вы правильно установили зависимости при установке приложения, вы должны увидеть следующее в журналах консоли

[2011-04-19 16:41:10 - TicTacToe] Установка TicTacToe.apk...

[2011-04-19 16:41:12 - TicTacToe] Успех!

Но так как вы упоминали, что не удалось найти Panorama.apk!Я попытался воспроизвести такое поведение, используя библиотеку tic-tac-toe sameple ..

Это то, что я сделал,

Добавлена ​​библиотека TicTacToe для затмения, Добавлено приложение TicTacToe также для затмения.

Щелкните правой кнопкой мыши по проекту библиотеки, перейдите на вкладку Android и удалите проверку IsLibrary.

Щелкните правой кнопкой мыши по проекту основного приложения, перейдите на вкладку Android, удалили зависимость.

.проект приложения и добавил проект библиотеки как необходимый проект

Компиляция прошла нормально, но при установке приложения он проверяет наличие файла library.apk Я предполагаю, что если вы делаете что-то подобное, может возникнуть проблема.

[2011-04-19 16:42:16 - TicTacToe] Установка TicTacToe.apk ...

[2011-04-19 16:42:20 - TicTacToe] Успех![2011-04-19 16:42:20 - TicTacToe] Обнаружена зависимость проекта, установка: TicTacToeLib

[2011-04-19 16:42:20 - TicTacToeLib] Загрузка TicTacToeLib.apk на устройство 'SH0A5PL08769'[2011-04-19 16:42:20 - TicTacToeLib] Установка TicTacToeLib.apk ... [2011-04-19 16:42:24 - TicTacToeLib] Успех!

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

Я думаю, вы должны использовать

 Intent myScreen = new Intent();
    myScreen.setClassName(YourCurrentScreen.this,
fullpackagename.yourclassName.class.getName());
    startActivityForResult(myScreen, 0);

Это определенно будет работать

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

Проблема в том, что вы не определили фильтры намерений для вашей "ActivityTable" ...

<activity android:name=".ActivityTable" 
                  android:label="ActivityTable">
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

Это должно помочь ..

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

Вы добавили этот класс в свой манифест?

<activity android:name="ActivityTable"></activity>

...