Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 找不到显式活动类{};您是否在AndroidManifest.xml中声明了此活动_Java_Android_Android Manifest_Android Intentservice - Fatal编程技术网

Java 找不到显式活动类{};您是否在AndroidManifest.xml中声明了此活动

Java 找不到显式活动类{};您是否在AndroidManifest.xml中声明了此活动,java,android,android-manifest,android-intentservice,Java,Android,Android Manifest,Android Intentservice,我正在尝试在后台解压一些文件,所以我使用了IntentService,就像谷歌的教程一样。我的服务类在AndroidManifest中声明如下: <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.osmdroid"> <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="21"

我正在尝试在后台解压一些文件,所以我使用了IntentService,就像谷歌的教程一样。我的服务类在AndroidManifest中声明如下:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.osmdroid">

<uses-sdk
    android:minSdkVersion="16"
    android:targetSdkVersion="21" />


<application
    android:configChanges="orientation|screenSize|keyboardHidden"
    android:hardwareAccelerated="true"
    android:icon="@drawable/ecn_icon"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >


    <activity
        android:name=".MapActivity"
        android:icon="@drawable/ecn_icon"
        android:label="test" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

    <activity
        android:name=".SettingsActivity"
        android:label="@string/title_activity_settings">
    </activity>
    <service
        android:name=".UnZipService"
        android:exported="false"/>
</application>
这里的服务:

public class UnZipService extends IntentService {
public UnZipService() {
    super("UnZipService");
}

@Override
protected void onHandleIntent(Intent workIntent) {
    String dataString = workIntent.getDataString();
    Log.v("IntentURI", dataString);
    Toast.makeText(this, "Installing....", Toast.LENGTH_SHORT).show();
}
它应该只是为了测试而显示toast,但我总是得到一个错误:

    01-29 19:08:25.740  15521-15521/org.osmdroid E/AndroidRuntime﹕ FATAL EXCEPTION: main
    java.lang.RuntimeException: Error receiving broadcast Intent { act=android.intent.action.DOWNLOAD_COMPLETE flg=0x10 pkg=org.osmdroid (has extras) } in org.osmdroid.SettingsActivity$1@21292650
            at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:768)
            at android.os.Handler.handleCallback(Handler.java:725)
            at android.os.Handler.dispatchMessage(Handler.java:92)
            at android.os.Looper.loop(Looper.java:150)
            at android.app.ActivityThread.main(ActivityThread.java:5147)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {org.osmdroid/org.osmdroid.UnZipService}; have you declared this activity in your AndroidManifest.xml?
            at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1618)
            at android.app.Instrumentation.execStartActivity(Instrumentation.java:1417)
            at android.app.Activity.startActivityForResult(Activity.java:3404)
            at android.app.Activity.startActivityForResult(Activity.java:3365)
            at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:817)
            at android.app.Activity.startActivity(Activity.java:3600)
            at android.app.Activity.startActivity(Activity.java:3568)
            at org.osmdroid.SettingsActivity$1.onReceive(SettingsActivity.java:148)
            at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:758)
at android.os.Handler.handleCallback(Handler.java:725)
            at android.os.Handler.dispatchMessage(Handler.java:92)
            at android.os.Looper.loop(Looper.java:150)
            at android.app.ActivityThread.main(ActivityThread.java:5147)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
            at dalvik.system.NativeStart.main(Native Method)    

两个(类和活动)都位于同一文件夹(org.osmdroid)中。看起来路径还可以,但问题出现了,我没有更多的想法…

您正在将服务作为一项活动启动

改变

Intent mServiceIntent = new Intent(context, UnZipService.class);
mServiceIntent.setData(Uri.parse(savedFilePath));
startActivity(mServiceIntent);


请在您的AndroidManifest.xml中声明此活动

您是否按照错误指示执行了操作并将其添加到您的清单中?
UnZipService
是一项服务,而不是一项活动。将其作为服务启动。请看我的回答上帝。。。花这么多时间,因为这个打字错误!谢谢!
Intent mServiceIntent = new Intent(context, UnZipService.class);
mServiceIntent.setData(Uri.parse(savedFilePath));
startActivity(mServiceIntent);
Intent mServiceIntent = new Intent(context, UnZipService.class);
mServiceIntent.setData(Uri.parse(savedFilePath));
startService(mServiceIntent); // Only this line is changed