Ipfs

IPFS Android 無法添加文件

  • November 8, 2017

我正在為我的 android DApp 使用 java-ipfs-api - https://www.npmjs.com/package/geth-private。我已經設法連接到 ipfs 守護程序並使用 ipfs.refs.local(); 對其進行了測試。命令如github上所述。但是,當我嘗試添加一個文件時

NamedStreamable.ByteArrayWrapper ipfsFile = new NamedStreamable.ByteArrayWrapper(usr + “.txt”, userJSON.toString().getBytes());

MerkleNode addFile = ipfs.add(ipfsFile);

甚至與

NamedStreamable.FileWrapper file = new NamedStreamable.FileWrapper(new File(“hello.txt”)); MerkleNode addResult = ipfs.add(file);

正如在 github 頁面上給出的那樣,它只是使用了 Adnroid Looper 類並無限期地循環並崩潰。在 github 上或程式碼中找不到任何關於此的內容。有人可以幫忙嗎?謝謝。

  • 編輯

致命異常:主程序:benkrarup.ethereum.messagingdapp,PID:24710 java.lang.NoClassDefFoundError:解析失敗:Ljava/nio/file/Paths;在 io.ipfs.api.IPFS.add(IPFS.java:85) 在 io.ipfs.api.IPFS.add(IPFS.java:70) 在 benkrarup.ethereum.messagingdapp.RegisterActivity $ 1.onClick(RegisterActivity.java:91) at android.view.View.performClick(View.java:5610) at android.view.View $ PerformClick.run(View.java:22265) at android.os.Handler.handleCallback(Handler.java:751) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper .java:154) 在 android.app.ActivityThread.main(ActivityThread.java:6077) 在 java.lang.reflect.Method.invoke(Native Method) 在 com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:866) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756) Caused by: java.lang.ClassNotFoundException: Didn’t find class “java.nio.file.Paths” on path: DexPathList[[zip file “/data/app/benkrarup.ethereum.messagingdapp-2/base.apk”],nativeLibraryDirectories=[/data/app/benkrarup.ethereum.messagingdapp-2/lib/x86, /data/app/benkrarup.ethereum.messagingdapp-2/base.apk!/lib/x86, /system/lib, /vendor/lib]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) at java.lang.ClassLoader.loadClass(ClassLoader.java:380) at java.lang.ClassLoader.loadClass(ClassLoader.java:312) at io.ipfs.api.IPFS.add(IPFS.java:85)  at io.ipfs.api.IPFS.add(IPFS.java:70)  at benkrarup.ethereum.messagingdapp.RegisterActivity $ 1.onClick(RegisterActivity.java:91) 在 android.view.View.performClick(View.java:5610) 在 android.view.View $ PerformClick.run(View.java:22265)  at android.os.Handler.handleCallback(Handler.java:751)  at android.os.Handler.dispatchMessage(Handler.java:95)  at android.os.Looper.loop(Looper.java:154)  at android.app.ActivityThread.main(ActivityThread.java:6077)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:866) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756) 

它得到這個錯誤。

我知道這已經很晚了,但我確實創建了一個適用於 android 的 IPFS 實現。這是因為 java.nio.Paths 在 API 級別 24 上不可用。

– 我在 github 上發布了可用程式碼的連結,但這是一個未經測試的快速修復。

引用自:https://ethereum.stackexchange.com/questions/23036