FragmentActivity导致ClassNotFoundException

Dav*_*ave 28 crash compatibility android

我只是使用Android SDK Manager将Android SDK工具更新到版本17,将Android兼容性更新到版本7.现在,我已经运行了很长时间的程序在启动时崩溃了.

缩小问题范围,我创建了一个新的空白项目,将android-support-v4.jar添加到构建路径,并将Activity更改为FragmentActivity,这就是全部.现在它崩溃了.

错误消息是:

java.lang.ClassNotFoundException: com.example.test.TestActivity in loader dalvik.system.PathClassLoader[/data/app/com.example.test-2.apk]
Run Code Online (Sandbox Code Playgroud)

代码是:

package com.example.test;

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;

public class TestActivity extends FragmentActivity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}
Run Code Online (Sandbox Code Playgroud)

其他所有内容(包括清单)与默认值相同.任何帮助深表感谢!

编辑:清单包括:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.test"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="9" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:name=".TestActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
Run Code Online (Sandbox Code Playgroud)

Dav*_*ave 27

原来这是Android SDK Tools r17的一个问题.我以前一直在使用教程中给出的方法:

http://mobile.tutsplus.com/tutorials/android/android-compatibility-working-with-fragments/

但是,这不再有效.相反,我需要做的就是在Eclipse中右键单击我的项目并选择Android Tools - > Add Support Library ...

这样做意味着不再需要转到Java Build Path并单击"Add External JARs ..."

非常感谢eMich提供的解决方案来自:ADT r17的Jar文件问题

  • 通过Android Tools添加支持库仍会导致我的代码崩溃,我确定的罪魁祸首是v4.FragmentActivity (3认同)

fik*_*r4n 11

我遇到了同样的问题,我在stackoverflow中找到的答案都没有解决我的问题.经过几个小时(多次)反复试验,我通过配置项目的构建路径解决了我的问题.在Eclipse中,右键单击项目Build Path>> Configure Build Path...,在Order and Export选项卡中,选中Android Private Libraries,单击OK.之后,清理项目并再次尝试运行.

我通过将我的项目与可以按预期运行的其他(新创建的)项目进行比较来解决了这个问题.我比较了它们的每个配置和AndroidManifest.xml.

希望这对你有帮助:)

更新其他解决方案:使用ANT

我找到了解决这个问题的另一种方法:使用ANT.我的朋友面临同样的问题,但修复构建路径并没有解决他的问题.我不知道是不是因为我们使用的是不同的IDE版本,不同的ADT版本或不同的操作系统(我使用的是GNU/Linux).然后,我建议他使用ANT而不是IDE.

首先,build.xml通过执行android update project -p <project-dir> -n <project-name>每个项目(包括库项目)来设置项目(创建).然后,从主项目的目录中,执行ant debug构建,ant installd安装和运行应用程序.

奇怪的是,一旦他以这种方式成功,他甚至可以再次使用IDE进行编译,完全没有ANT.