Java 控件在使用DropboxSyncAPI Android时不会进入onActivityResult方法中的if条件
我已经遵循了网站教程中的基本步骤,但是,我似乎无法链接我的帐户,它一直失败。我在屏幕上放了一个TextView,当它输入代码的某些部分时,我会更改它 当我运行应用程序时会发生什么:当应用程序打开时,它会要求我登录到dropbox帐户,当我允许应用程序权限时,它会返回到应用程序中,文本视图上显示的文本是:我没有批准此操作 主要活动:Java 控件在使用DropboxSyncAPI Android时不会进入onActivityResult方法中的if条件,java,android,android-studio,dropbox,dropbox-api,Java,Android,Android Studio,Dropbox,Dropbox Api,我已经遵循了网站教程中的基本步骤,但是,我似乎无法链接我的帐户,它一直失败。我在屏幕上放了一个TextView,当它输入代码的某些部分时,我会更改它 当我运行应用程序时会发生什么:当应用程序打开时,它会要求我登录到dropbox帐户,当我允许应用程序权限时,它会返回到应用程序中,文本视图上显示的文本是:我没有批准此操作 主要活动: import android.app.Activity; import android.content.Intent; import android.os.Bundl
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.util.Log;
import android.widget.TextView;
import com.dropbox.sync.android.DbxAccountManager;
import com.dropbox.sync.android.DbxFileSystem;
public class MainActivity extends ActionBarActivity {
private DbxAccountManager mDbxAcctMgr;
private String APP_KEY="key";
private String APP_SECRET="secret";
TextView checking;
static final int REQUEST_LINK_TO_DBX = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
checking= (TextView) findViewById(R.id.checking);
mDbxAcctMgr = DbxAccountManager.getInstance(getApplicationContext(), APP_KEY, APP_SECRET);
startLink();
}
private void startLink() {
mDbxAcctMgr.startLink((Activity)this, REQUEST_LINK_TO_DBX);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.v("Activity Result","entered onActivityResult: resultCode: "+resultCode);
if (requestCode == REQUEST_LINK_TO_DBX) {
checking.setText("Request link to dbx");
Log.v("Activity Result","Entered the request link to DBX if condition: resultCode: "+resultCode);
if (resultCode == Activity.RESULT_OK) {
Log.v("Activity Result","Connection succesful: resultCode: "+resultCode);
checking.setText("Connected");
try {
DbxFileSystem dbxFs = DbxFileSystem.forAccount(mDbxAcctMgr.getLinkedAccount());
} catch (Exception e) {
Log.v("Activity Result", "unable to get associated DbxFileSystem: resultCode: "+resultCode);
}
// ... Start using Dropbox files.
} else {
Log.v("Activity Result","Link failed or was cancelled by the user: resultCode: "+resultCode);
checking.setText("I did not approve this");
// ... Link failed or was cancelled by the user.
}
} else {
super.onActivityResult(requestCode, resultCode, data);
}
}
}
这是我的日志:
03-21 00:03:44.219 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi I/dalvikvm﹕ Could not find method android.view.ViewGroup.onNestedScrollAccepted, referenced from method android.support.v7.internal.widget.ActionBarOverlayLayout.onNestedScrollAccepted
03-21 00:03:44.219 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi W/dalvikvm﹕ VFY: unable to resolve virtual method 11387: Landroid/view/ViewGroup;.onNestedScrollAccepted (Landroid/view/View;Landroid/view/View;I)V
03-21 00:03:44.229 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi D/dalvikvm﹕ VFY: replacing opcode 0x6f at 0x0000
03-21 00:03:44.229 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi I/dalvikvm﹕ Could not find method android.view.ViewGroup.onStopNestedScroll, referenced from method android.support.v7.internal.widget.ActionBarOverlayLayout.onStopNestedScroll
03-21 00:03:44.229 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi W/dalvikvm﹕ VFY: unable to resolve virtual method 11393: Landroid/view/ViewGroup;.onStopNestedScroll (Landroid/view/View;)V
03-21 00:03:44.229 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi D/dalvikvm﹕ VFY: replacing opcode 0x6f at 0x0000
03-21 00:03:44.229 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi I/dalvikvm﹕ Could not find method android.support.v7.internal.widget.ActionBarOverlayLayout.stopNestedScroll, referenced from method android.support.v7.internal.widget.ActionBarOverlayLayout.setHideOnContentScrollEnabled
03-21 00:03:44.229 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi W/dalvikvm﹕ VFY: unable to resolve virtual method 9077: Landroid/support/v7/internal/widget/ActionBarOverlayLayout;.stopNestedScroll ()V
03-21 00:03:44.229 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi D/dalvikvm﹕ VFY: replacing opcode 0x6e at 0x000e
03-21 00:03:44.229 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi I/dalvikvm﹕ Could not find method android.content.res.TypedArray.getChangingConfigurations, referenced from method android.support.v7.internal.widget.TintTypedArray.getChangingConfigurations
03-21 00:03:44.229 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi W/dalvikvm﹕ VFY: unable to resolve virtual method 391: Landroid/content/res/TypedArray;.getChangingConfigurations ()I
03-21 00:03:44.229 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi D/dalvikvm﹕ VFY: replacing opcode 0x6e at 0x0002
03-21 00:03:44.229 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi I/dalvikvm﹕ Could not find method android.content.res.TypedArray.getType, referenced from method android.support.v7.internal.widget.TintTypedArray.getType
03-21 00:03:44.229 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi W/dalvikvm﹕ VFY: unable to resolve virtual method 413: Landroid/content/res/TypedArray;.getType (I)I
03-21 00:03:44.229 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi D/dalvikvm﹕ VFY: replacing opcode 0x6e at 0x0002
03-21 00:03:44.269 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi W/dalvikvm﹕ VFY: unable to find class referenced in signature (Lcom/dropbox/ledger/android/Ledger;)
03-21 00:03:44.269 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi W/dalvikvm﹕ VFY: unable to find class referenced in signature (Lcom/dropbox/ledger/android/Ledger;)
03-21 00:03:44.269 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi I/dalvikvm﹕ Could not find method com.dropbox.ledger.android.Ledger.newBuilder, referenced from method com.dropbox.sync.android.CoreAccountManager.initLedger
03-21 00:03:44.269 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi W/dalvikvm﹕ VFY: unable to resolve static method 12052: Lcom/dropbox/ledger/android/Ledger;.newBuilder ()Lcom/dropbox/ledger/android/Ledger$Builder;
03-21 00:03:44.269 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi D/dalvikvm﹕ VFY: replacing opcode 0x71 at 0x000e
03-21 00:03:44.269 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi W/dalvikvm﹕ VFY: unable to find class referenced in signature (Lcom/dropbox/ledger/android/Ledger;)
03-21 00:03:44.279 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi I/dalvikvm﹕ Failed resolving Lcom/dropbox/sync/android/LedgerUrlCallbackImpl; interface 1486 'Lcom/dropbox/ledger/android/LedgerUrlCallback;'
03-21 00:03:44.279 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi W/dalvikvm﹕ Link of class 'Lcom/dropbox/sync/android/LedgerUrlCallbackImpl;' failed
03-21 00:03:44.279 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi D/dalvikvm﹕ DexOpt: unable to opt direct call 0x34d6 at 0x90 in Lcom/dropbox/sync/android/CoreAccountManager;.initLedger
03-21 00:03:44.279 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi I/com.dropbox.sync.android.CoreAccountManager﹕ Prepared cache dir '/data/data/com.ashwinpraveen.driveapp.dropboxsyncapi/app_DropboxSyncCache/zu8comzdp8dkq8v'.
03-21 00:03:44.279 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi D/dalvikvm﹕ Trying to load lib /data/app-lib/com.ashwinpraveen.driveapp.dropboxsyncapi-2/libDropboxSync.so 0x41bbcaa0
03-21 00:03:44.289 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi D/dalvikvm﹕ Added shared lib /data/app-lib/com.ashwinpraveen.driveapp.dropboxsyncapi-2/libDropboxSync.so 0x41bbcaa0
03-21 00:03:44.289 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi W/dalvikvm﹕ VFY: unable to find class referenced in signature (Lcom/dropbox/ledger/android/Ledger;)
03-21 00:03:44.289 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi I/dalvikvm﹕ Could not find method com.dropbox.ledger.android.Ledger.getHandles, referenced from method com.dropbox.sync.android.NativeEnv$Config.<init>
03-21 00:03:44.289 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi W/dalvikvm﹕ VFY: unable to resolve virtual method 12050: Lcom/dropbox/ledger/android/Ledger;.getHandles ()Lcom/dropbox/ledger/android/Ledger$NativeLedgerHandles;
03-21 00:03:44.289 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi D/dalvikvm﹕ VFY: replacing opcode 0x6e at 0x0168
03-21 00:03:44.289 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi I/dalvikvm﹕ DexOpt: unable to optimize instance field ref 0x14db at 0x16c in Lcom/dropbox/sync/android/NativeEnv$Config;.<init>
03-21 00:03:44.299 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi I/dalvikvm﹕ DexOpt: unable to optimize instance field ref 0x14da at 0x170 in Lcom/dropbox/sync/android/NativeEnv$Config;.<init>
03-21 00:03:44.309 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi I/com.dropbox.sync.android.DbxAccount﹕ Dropbox user 390717823 linked.
03-21 00:03:44.309 18691-18708/com.ashwinpraveen.driveapp.dropboxsyncapi W/dalvikvm﹕ VFY: unable to find class referenced in signature (Lcom/dropbox/ledger/android/Ledger;)
03-21 00:03:44.309 18691-18708/com.ashwinpraveen.driveapp.dropboxsyncapi W/dalvikvm﹕ VFY: unable to find class referenced in signature (Lcom/dropbox/ledger/android/Ledger;)
03-21 00:03:44.309 18691-18708/com.ashwinpraveen.driveapp.dropboxsyncapi W/dalvikvm﹕ VFY: unable to find class referenced in signature (Lcom/dropbox/ledger/android/Ledger;)
03-21 00:03:44.309 18691-18708/com.ashwinpraveen.driveapp.dropboxsyncapi I/dalvikvm﹕ Could not find method com.dropbox.ledger.android.Ledger.log, referenced from method com.dropbox.sync.android.AnalyticsEvent.log
03-21 00:03:44.309 18691-18708/com.ashwinpraveen.driveapp.dropboxsyncapi W/dalvikvm﹕ VFY: unable to resolve virtual method 12051: Lcom/dropbox/ledger/android/Ledger;.log (Ljava/lang/String;)V
03-21 00:03:44.309 18691-18708/com.ashwinpraveen.driveapp.dropboxsyncapi D/dalvikvm﹕ VFY: replacing opcode 0x6e at 0x0078
03-21 00:03:44.319 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi I/com.dropbox.sync.android.DbxAccountManager﹕ Dropbox initialized for application: zu8comzdp8dkq8v (com.ashwinpraveen.driveapp.dropboxsyncapi/1.0 DropboxSync/3.1.2 (Android; 4.3; PANASONIC Panasonic ELUGA A armeabi-v7a; en_US))
03-21 00:03:44.319 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi I/com.dropbox.sync.android.CoreAccountManager﹕ Requesting link for a Dropbox new account.
03-21 00:03:44.339 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi I/com.dropbox.sync.android.DbxSyncService﹕ DbxSyncService starting.
03-21 00:03:44.439 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi D/libEGL﹕ loaded /vendor/lib/egl/libEGL_adreno.so
03-21 00:03:44.449 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi D/libEGL﹕ loaded /vendor/lib/egl/libGLESv1_CM_adreno.so
03-21 00:03:44.449 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi D/libEGL﹕ loaded /vendor/lib/egl/libGLESv2_adreno.so
03-21 00:03:44.449 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi I/Adreno-EGL﹕ <qeglDrvAPI_eglInitialize:381>: EGL 1.4 QUALCOMM build: AU_LINUX_ANDROID_LNX.LA.3.2.1.5.04.03.00.191.009_msm8610_LNX.LA.3.2.1.5__release_AU ()
OpenGL ES Shader Compiler Version: 20.00.05
Build Date: 06/10/14 Tue
Local Branch: mybranch3525181
Remote Branch: quic/LNX.LA.3.2.1.5
Local Patches: NONE
Reconstruct Branch: AU_LINUX_ANDROID_LNX.LA.3.2.1.5.04.03.00.191.009 + NOTHING
03-21 00:03:44.499 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi D/OpenGLRenderer﹕ Enabling debug mode 0
03-21 00:03:44.979 18691-18708/com.ashwinpraveen.driveapp.dropboxsyncapi I/com.dropbox.sync.android.CoreStandardHttpRequestor﹕ Created new socket: SSL socket over Socket[address=api.dropbox.com/108.160.165.142,port=443,localPort=41111]
03-21 00:03:46.209 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi I/com.dropbox.sync.android.DbxSyncService﹕ DbxSyncService stopping.
03-21 00:03:50.839 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi D/dalvikvm﹕ GC_FOR_ALLOC freed 1341K, 17% free 6882K/8264K, paused 27ms, total 27ms
03-21 00:03:50.839 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi I/com.dropbox.sync.android.DbxAccount﹕ Dropbox user 390717823 linked.
03-21 00:03:50.849 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi W/com.dropbox.sync.android.CoreAccountManager﹕ Duplicate link for user ID 390717823, unlinking new account.
03-21 00:03:50.849 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi I/com.dropbox.sync.android.DbxAccount﹕ User 390717823 unlinked.
03-21 00:03:50.879 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi I/com.dropbox.sync.android.DbxSyncService﹕ DbxSyncService starting.
03-21 00:03:50.889 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi V/Activity Result﹕ entered onActivityResult: resultCode: 0
03-21 00:03:50.889 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi V/Activity Result﹕ Entered the request link to DBX if condition: resultCode: 0
03-21 00:03:50.889 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi V/Activity Result﹕ Link failed or was cancelled by the user: resultCode: 0
03-21 00:03:51.199 18691-18708/com.ashwinpraveen.driveapp.dropboxsyncapi I/com.dropbox.sync.android.CoreStandardHttpRequestor﹕ Created new socket: SSL socket over Socket[address=api.dropbox.com/108.160.165.142,port=443,localPort=41112]
03-21 00:03:52.229 18691-18708/com.ashwinpraveen.driveapp.dropboxsyncapi I/com.dropbox.sync.android.CoreBackgroundProcessor﹕ Notifying server of unlink for uid='390717823' token='{oauth2:"nuxHnUEt_tAAAAAAAAAALLsxsnMV86gWSip0JF1YfE6egOZynnEkhpirXU9tx4Y9"}'.
03-21 00:03:52.479 18691-18708/com.ashwinpraveen.driveapp.dropboxsyncapi I/com.dropbox.sync.android.CoreStandardHttpRequestor﹕ Created new socket: SSL socket over Socket[address=api.dropbox.com/108.160.165.142,port=443,localPort=41113]
03-21 00:03:53.559 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi I/com.dropbox.sync.android.DbxSyncService﹕ DbxSyncService stopping.
更新:
我在onActivityResult方法中添加了更多日志。
此外,当我第二次运行应用程序时,这种情况就开始发生了,在此之前,应用程序运行良好:TextView甚至显示了connection successful 我有点困惑。您问题的标题说控件不会进入onActivityResult方法,但您报告的消息“我没有批准”只设置在onActivityResult中,对吗?因此,看起来控件肯定会进入ActivityResult,但由于某些原因,resultCode不是Activity.RESULT\u OK。对吗?@smarx对不起,我就是这个意思!我会马上编辑这个问题。你能在每个代码路径中添加一些日志记录并发布新的输出吗?这样我们就可以准确地看到什么是在什么时候执行的,执行了多少次,等等。?例如,向onActivityResult的每个部分添加日志记录。注销resultCode的值也可能很好。再次您好@Greg我已经添加了日志。我认为这是因为应用程序已经在线授权一次:这可能是日志的原因:03-21 00:03:50.849 18691-18691/com.ashwinpraveen.driveapp.dropboxsyncapi W/com.dropbox.sync.android.CoreAccountManager﹕ 用户ID 390717823的重复链接,取消新帐户的链接。我不知道如何解决它,即使它是问题。谢谢,这有助于澄清发生了什么。看起来问题只是你再次链接了同一个帐户,所以你得到了结果代码,因为没有什么真正的改变。如果您只是想继续使用同一个帐户,那么没有理由再次调用startLink。如果你链接了一个不同的帐户,你会得到结果。