首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android Studio和SMBJ

Android Studio和SMBJ
EN

Stack Overflow用户
提问于 2022-04-25 06:44:16
回答 1查看 417关注 0票数 0

我正在尝试从我的SMB共享文件夹与Android创建一个文件列表。

我想在我的安卓应用程序中按下一个按钮,然后将列表作为*.txt存储在我的根或SD卡根中。

我正在使用版本级别30和SMBJ库。

但我在我的SMB份额上失败了。

当我按下带有代码的按钮时,它就会崩溃,而不会在我的三星GalaxyS20上给出消息。

我发现坠机发生在以下两行:

代码语言:javascript
复制
AuthenticationContext ac = new AuthenticationContext("admin", "password123".toCharArray(),null);
Session session = connection.authenticate(ac);

我不确定我是否需要这个域名。

我没有安装域名,并尝试了一些不同的东西。

代码语言:javascript
复制
            SMBClient client = new SMBClient();

            try {
                Connection connection = client.connect("192.168.1.75");
                AuthenticationContext ac = new AuthenticationContext("admin", "password123".toCharArray(),null);
                Session session = connection.authenticate(ac);
                //DiskShare share = (DiskShare) session.connectShare("Intel");
            } catch (Exception e) {
                txt.setText(e.toString());
            }

以下内容来自GIT上的SMBJ网站:https://github.com/hierynomus/smbj

代码语言:javascript
复制
SMBClient client = new SMBClient();

try (Connection connection = client.connect("SERVERNAME")) {
    AuthenticationContext ac = new AuthenticationContext("USERNAME", "PASSWORD".toCharArray(), "DOMAIN");
    Session session = connection.authenticate(ac);

    // Connect to Share
    try (DiskShare share = (DiskShare) session.connectShare("SHARENAME")) {
        for (FileIdBothDirectoryInformation f : share.list("FOLDER", "*.TXT")) {
            System.out.println("File : " + f.getFileName());
        }
    }
}

这是我得到的错误日志:

代码语言:javascript
复制
2022-04-25 11:45:27.475 22865-22865/com.example.filme E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.filme, PID: 22865
    java.lang.NoClassDefFoundError: Failed resolution of: Lorg/slf4j/LoggerFactory;
        at com.hierynomus.smbj.SMBClient.<clinit>(SMBClient.java:119)
        at com.example.filme.MainActivity$1.onClick(MainActivity.java:36)
        at android.view.View.performClick(View.java:7792)
        at android.widget.TextView.performClick(TextView.java:16112)
        at com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:1119)
        at android.view.View.performClickInternal(View.java:7769)
        at android.view.View.access$3800(View.java:910)
        at android.view.View$PerformClick.run(View.java:30213)
        at android.os.Handler.handleCallback(Handler.java:938)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loopOnce(Looper.java:226)
        at android.os.Looper.loop(Looper.java:313)
        at android.app.ActivityThread.main(ActivityThread.java:8663)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:567)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135)
     Caused by: java.lang.ClassNotFoundException: Didn't find class "org.slf4j.LoggerFactory" on path: DexPathList[[dex file "/data/data/com.example.filme/code_cache/.overlay/base.apk/classes3.dex", dex file "/data/data/com.example.filme/code_cache/.overlay/base.apk/classes.dex", zip file "/data/app/~~SMMMBpkYv1Fu0fT2H1M_sA==/com.example.filme-ovE-fLeCY69AhQvQzyn1cA==/base.apk"],nativeLibraryDirectories=[/data/app/~~SMMMBpkYv1Fu0fT2H1M_sA==/com.example.filme-ovE-fLeCY69AhQvQzyn1cA==/lib/arm64, /system/lib64, /system/system_ext/lib64]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:218)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
        at com.hierynomus.smbj.SMBClient.<clinit>(SMBClient.java:119) 
        at com.example.filme.MainActivity$1.onClick(MainActivity.java:36) 
        at android.view.View.performClick(View.java:7792) 
        at android.widget.TextView.performClick(TextView.java:16112) 
        at com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:1119) 
        at android.view.View.performClickInternal(View.java:7769) 
        at android.view.View.access$3800(View.java:910) 
        at android.view.View$PerformClick.run(View.java:30213) 
        at android.os.Handler.handleCallback(Handler.java:938) 
        at android.os.Handler.dispatchMessage(Handler.java:99) 
        at android.os.Looper.loopOnce(Looper.java:226) 
        at android.os.Looper.loop(Looper.java:313) 
        at android.app.ActivityThread.main(ActivityThread.java:8663) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:567) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135) 
2022-04-25 11:45:27.518 22865-22865/com.example.filme I/Process: Sending signal. PID: 22865 SIG: 9

试图安装库slf4j-Androd-1.7.9.jar,但目前无法工作。

编辑12:46时:

我现在添加了许多库,现在它已经接近工作了,但还没有完全完成。

没有缺少库,但会发生以下错误:

android.os.NetworkOnMainThreadException误差

我读到我必须进行异步处理。

但我太蠢了不能写这个异步代码..。有人能帮忙吗?

EN

回答 1

Stack Overflow用户

发布于 2022-04-25 10:57:43

现在起作用了。

我需要以下图书馆:

ASN-1-0.6.0.jar bcprov-jdk15on-1.70.jar灌篮-1.3.2.jar slf4j-api-1.7.9.jar slf4j-nop-1.7.9.jar smbj-0.11.5.jar

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71995426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档