ClassNotFoundException:在Android中的libs中添加了第三方JAR文件时发生

拉姆·罗特

我正在使用jackrabbit jar文件(jackrabbit-webdav-2.2.5-jar-with-dependencies)在android mobile上开发webDav客户端-该JAR是针对android设备的自定义版本。

我已经在libs文件夹中添加了这个jar文件,它没有给我编译错误,但是当我在模拟器上运行.apk时,我得到了以下错误:

04-16 02:55:50.387: E/AndroidRuntime(2122): FATAL EXCEPTION: main
04-16 02:55:50.387: E/AndroidRuntime(2122): Process: com.example.jackrabbit, PID: 2122
04-16 02:55:50.387: E/AndroidRuntime(2122): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.jackrabbit/com.example.jackrabbit.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "com.example.jackrabbit.MainActivity" on path: DexPathList[[zip file "/data/app/com.example.jackrabbit-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.jackrabbit-1, /system/lib]]
04-16 02:55:50.387: E/AndroidRuntime(2122):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2121)
04-16 02:55:50.387: E/AndroidRuntime(2122):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
04-16 02:55:50.387: E/AndroidRuntime(2122):     at android.app.ActivityThread.access$800(ActivityThread.java:135)
04-16 02:55:50.387: E/AndroidRuntime(2122):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
04-16 02:55:50.387: E/AndroidRuntime(2122):     at android.os.Handler.dispatchMessage(Handler.java:102)
04-16 02:55:50.387: E/AndroidRuntime(2122):     at android.os.Looper.loop(Looper.java:136)
04-16 02:55:50.387: E/AndroidRuntime(2122):     at android.app.ActivityThread.main(ActivityThread.java:5017)
04-16 02:55:50.387: E/AndroidRuntime(2122):     at java.lang.reflect.Method.invokeNative(Native Method)
04-16 02:55:50.387: E/AndroidRuntime(2122):     at java.lang.reflect.Method.invoke(Method.java:515)
04-16 02:55:50.387: E/AndroidRuntime(2122):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
04-16 02:55:50.387: E/AndroidRuntime(2122):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
04-16 02:55:50.387: E/AndroidRuntime(2122):     at dalvik.system.NativeStart.main(Native Method)
04-16 02:55:50.387: E/AndroidRuntime(2122): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.example.jackrabbit.MainActivity" on path: DexPathList[[zip file "/data/app/com.example.jackrabbit-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.jackrabbit-1, /system/lib]]
04-16 02:55:50.387: E/AndroidRuntime(2122):     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
04-16 02:55:50.387: E/AndroidRuntime(2122):     at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
04-16 02:55:50.387: E/AndroidRuntime(2122):     at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
04-16 02:55:50.387: E/AndroidRuntime(2122):     at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
04-16 02:55:50.387: E/AndroidRuntime(2122):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2112)
04-16 02:55:50.387: E/AndroidRuntime(2122):     ... 11 more

下面是我的代码快照,用于连接到webDav服务器

package com.example.jackrabbit;

import org.apache.commons.httpclient.Credentials;
import org.apache.commons.httpclient.HostConfiguration;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
import org.apache.commons.httpclient.UsernamePasswordCredentials;
import org.apache.commons.httpclient.auth.AuthScope;
import org.apache.commons.httpclient.params.HttpConnectionManagerParams;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class webDavClient extends Activity {

    MultiThreadedHttpConnectionManager manager;
    HostConfiguration config;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button btn = (Button)findViewById(R.id.button1);

        btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                //webDav host configuration
                ConfigureHost();
                 //webDav client configuration
                 ConfigureClient();             
            }
        });
    }

    public void ConfigureHost() {
        //create host configuration
        HostConfiguration config = new HostConfiguration();
        config.setHost("http://webdav.in.soti.net");

        //setup connection manager
        manager = new MultiThreadedHttpConnectionManager();
        HttpConnectionManagerParams params = new HttpConnectionManagerParams();
        params.setMaxConnectionsPerHost(config, 5); // currently allowing 5 we may revise count afterwards

    }

    public void ConfigureClient() {
        //create client configuration
        HttpClient client = new HttpClient(manager);
        client.setHostConfiguration(config);
        Credentials creds = new UsernamePasswordCredentials("username", "password");
        client.getState().setCredentials(AuthScope.ANY, creds);
    }

}

以下是活动布局文件

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <Button
        android:id="@+id/button1"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="100dp"
        android:layout_marginTop="127dp"
        android:text="ConnectToServer" />

</RelativeLayout>

清单文件

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

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="19" />
    <uses-permission android:name="android.permission.INTERNET"/>

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.jackrabbit.MainActivity"
            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>

自早晨以来,请对此提供帮助,我对此感到困惑。

最好的问候,拉姆·罗特

桑迪普·蒂瓦里(Sandeep Tiwari)

1-转到项目属性
2-转到Java构建路径
3-单击订单并导出
4-检查您的jar文件单击确定

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

EJB-JAR中的第三方库

来自分类Dev

使用第三方jar在命令行中执行jar文件

来自分类Dev

如何在Notes Xpages应用程序中添加外部第三方jar?

来自分类Dev

如何使用第三方应用程序在 Dropbox 中添加文件?

来自分类Dev

如何在Android Studio中添加第三方SDK

来自分类Dev

使用sbt发布jar文件(第三方)

来自分类Dev

使用sbt发布jar文件(第三方)

来自分类Dev

如何添加第三方Java JAR文件以在PySpark中使用

来自分类Dev

Android AAR第三方Jar

来自分类Dev

资产文件夹中的Pdf文件无法在第三方应用中打开

来自分类Dev

在Business Objects SDK应用程序中包含第三方Jar

来自分类Dev

如何在 Maven 中捆绑第三方 jar?

来自分类Dev

第三方jar取决于其他第三方jar

来自分类Dev

从Django中的第三方应用收集消息

来自分类Dev

在Pelican中安装第三方Markdown扩展

来自分类Dev

第三方键盘中的resignFirstResponder()

来自分类Dev

获取Java中的第三方库版本

来自分类Dev

防止第三方函数中的exit()退出?

来自分类Dev

伪造第三方库中的扩展方法

来自分类Dev

Chrome审核:第三方代码中的Datacamp

来自分类Dev

在Flutter中编辑第三方插件

来自分类Dev

在厨师中包括第三方资源

来自分类Dev

在Prestashop中安装第三方库

来自分类Dev

在WCF中捕获第三方DLL事件

来自分类Dev

prestashop上mailalert中的第三方模块

来自分类Dev

Google登录中的第三方图标

来自分类Dev

避免在Veracode中扫描第三方库

来自分类Dev

在React中调用第三方Lib函数

来自分类Dev

Python / Django中的第三方API集成