我正在构建一个必须登录服务器的应用程序,登录后它将显示一个 WebView 。
这是我第一次在 Android 中编程,我设法获得了应用程序工作所需的所有部分。但是当我尝试将我的代码放在 Android Studio 中时,我遇到了一些 Java 错误。
当我在 Eclipse IDE 中测试代码时,我没有遇到这些错误,它运行完美。
起初Android Studio找不到一些类,所以我将我需要的jar(httpclient-4.3.5.jar)添加到app/src/lib文件夹中。错误消失了,我可以编译并启动应用程序。
但是,当调用我的 sendPost() 方法时,我的应用程序崩溃并在控制台中显示错误。该方法尝试执行一个简单的 HTTP 请求,该请求在 Eclipse 中完美运行。这是我得到的错误:
Caused by: java.lang.NoClassDefFoundError: org.apache.http.util.TextUtils
at org.apache.http.impl.client.HttpClientBuilder.split(HttpClientBuilder.java:686)
at org.apache.http.impl.client.HttpClientBuilder.build(HttpClientBuilder.java:702)
at org.apache.http.impl.client.HttpClients.createSystem(HttpClients.java:66)
at com.example.loginscreen2.MainActivity.sendPost(MainActivity.java:106)
at com.example.loginscreen2.MainActivity.login(MainActivity.java:52)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at android.view.View$1.onClick(View.java:3818)
at android.view.View.performClick(View.java:4438)
at android.view.View$PerformClick.run(View.java:18422)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5017)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
at dalvik.system.NativeStart.main(Native Method)
导致此错误的行是:
CloseableHttpClient 客户端 = HttpClients.createSystem();
我很困惑,我添加了库,Android Studio为我添加了导入行,但仍然找不到该类?
有谁知道可能是什么问题吗?
编辑:这些是我在应用程序的 build.gradle 中的应用程序依赖项
依赖关系
{
编译 fileTree(dir: 'libs', include: ['*.jar'])
}
我安装了 ADT Bundle for Eclipse,在 Android 项目中我遇到了同样的错误......
最佳答案
我使用构建路径选项导入库,将它们删除并将 jar 文件复制到“libs”文件夹似乎可以解决问题。
关于在 Android Studio 中找不到 Java 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25908457/