2

テストAndroidアプリを作成しました。アプリで、jgit を使用してクローン操作を呼び出すと、エラーが発生します。

Caused by: org.eclipse.jgit.errors.MissingObjectException: Missing unknown e69de29
org.eclipse.jgit.storage.file.WindowCursor.open(WindowCursor.java:125)
org.eclipse.jgit.lib.ObjectReader.open(ObjectReader.java:228)
org.eclipse.jgit.dircache.DirCacheCheckout.checkoutEntry(DirCacheCheckout.java:926)
org.eclipse.jgit.dircache.DirCacheCheckout.doCheckout(DirCacheCheckout.java:444)
org.eclipse.jgit.dircache.DirCacheCheckout.checkout(DirCacheCheckout.java:378)
org.eclipse.jgit.api.CloneCommand.checkout(CloneCommand.java:224)
org.eclipse.jgit.api.CloneCommand.call(CloneCommand.java:121)

しかし、アジトでは、この操作はエラーなしで実行されます。アジトのコードを調べましたが、なぜこれが起こっているのかわかりませんでした。

教えてください、私は何を間違っていますか?

私のコード:

   Git.cloneRepository()
    .setBare(false)
    .setDirectory(dir)
    .setCloneAllBranches(false)
    .setRemote("origin")
    .setURI(uri)
.call();
4

1 に答える 1

0

call() の前に setNoCheckout(true) を追加してみてください。チェックアウト時にエラーが発生しました。その後、別のコマンドでチェックアウトできます。

あなたの問題では、ブランチが設定されていない可能性があります。たとえば、 yourdir/.git/.../branches/ を確認するか、クローン作成後に現在のブランチを見つけてみてください。定義されていないのかもしれません。ファイル yourdir/.git/HEAD も興味深いものです。

于 2012-04-13T13:57:03.657 に答える