小编dco*_*cow的帖子

Android java.lang.IllegalArgumentException:服务未注册

我有一个看起来像这样的设置:

class MyFragment implements SomeEventListener {

    Application mAppContext;    

    boolean mBound;
    boolean mDidCallUnbind;
    MyIBinder mBinder;
    ServiceConnection mConnection = new ServiceConnection() {
        @Override
        public void onServiceConnected(ComponentName name, IBinder service) {
            mBound = true;
            mBinder = (MyIBinder) service;
            mBinder.getThings();...
        }

        @Override
        public void onServiceDisconnected(ComponentName name) {
            mDidCallUnbind = false;
            mBound = false;
            mBinder = null;
        }
    };

    ...

    @Override
    public void onSomeEvent() {
        mAppContext.bindService(...);
    }

    void unbindService() {
        if (mBound && !mDidCallUnbind) {
            mDidCallUnbind = true;
            mAppContext.unbindService(mConnection);
        }
    }

    @Override
    public void onPause() …
Run Code Online (Sandbox Code Playgroud)

android android-service android-service-binding

37
推荐指数
6
解决办法
3万
查看次数

onEditorAction()中的null keyevent和actionid = 0(Jelly Bean/Nexus 7)

我有一个编辑文本,在我的应用程序中用作搜索框.在我的Nexus 7上的Jelly Bean中,当我在正在监听的文本框中输入内容并点击时,输入KeyEvent = null并将ActionId = 0传递给onEditorAction()方法.有人遇到过这种情况么?我认为这可能是一个错误.

在下面的第二个if语句中,我得到一个空指针,因为actionId = 0和KeyEvent = null;

// Search field logic.
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
    Log.d(TAG, "onEditorAction");
    if (event != null && event.getAction() != KeyEvent.ACTION_DOWN)
        return false;
    if (actionId == EditorInfo.IME_ACTION_SEARCH
            || event.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
              .....Do some stuff();
     }
}
Run Code Online (Sandbox Code Playgroud)

android android-edittext android-4.2-jelly-bean

24
推荐指数
2
解决办法
1万
查看次数

ClassName.this的目的是什么,除了消歧之外?

我已经看到ClassName.this在SO和其他地方使用很多Android代码(而不是简单的this关键字)来引用类的当前实例.我理解你可能决定this在类名前加上以消除任何歧义,但根据我的经验,这样做通常是不必要的,因为实际上只有一件事this可以引用 - 代码执行的类的当前实例是否有其他我忽略的建议将this关键字与类名称对接是更好的做法,或者在某些情况下它实际上是必要的?

java android this

14
推荐指数
2
解决办法
4643
查看次数

发布后,所有暂存但未提交的文件都被删除:git reset --hard HEAD

通常,您可以这样做:

$ echo "Stanley, you must beware of the Drive bee" > file-a
$ echo "What's a Drive bee?" > file-b
$ git init .
$ git add file-b
$ git commit file-b -m "We don't know, but whatever error you make with it could be fatal."
$ git reset --hard HEAD
$ ls
file-a file-b
Run Code Online (Sandbox Code Playgroud)

我觉得我做得非常糟糕:

$ echo "What are you doing, you darn ?" > file-a
$ echo "Can't you see I'm trying to drive?" > file-
$ …
Run Code Online (Sandbox Code Playgroud)

filesystems git

9
推荐指数
1
解决办法
2856
查看次数

Android Studio 0.5.0重建不与Proguard一起使用

最近我根据IDE的建议将Android Studio从0.4.2更新到0.5.0,将Android Gradle Plug-In从0.7.2更新到0.9.0.项目运行并安装良好,但是当我按下Build-> Rebuild Project时,它会抛出一个错误,停止重建.消息选项卡中出现以下错误:

Information:See complete output in console
Error:Execution failed for task ':projectName:proguardDebug'.
> java.io.IOException: Please correct the above warnings first.
Run Code Online (Sandbox Code Playgroud)

以下是控制台中描述的问题:

:projectName:proguardDebug
Note: there were 2345 duplicate class definitions.
Warning: com.facebook.Settings: can't find referenced class com.facebook.android.BuildConfig
Warning: com.facebook.Settings: can't find referenced class com.facebook.android.BuildConfig
Warning: com.facebook.internal.Utility: can't find referenced class com.facebook.android.BuildConfig
Warning: com.facebook.internal.Utility: can't find referenced class com.facebook.android.BuildConfig
Warning: there were 4 unresolved references to classes or interfaces.
         You may need to add missing library jars or …
Run Code Online (Sandbox Code Playgroud)

android proguard gradle android-studio facebook-sdk-3.0

9
推荐指数
1
解决办法
3779
查看次数

Android gradle插件multidex ZipException

我正在尝试使用新的multidex选项,但是我收到以下错误:

Execution failed for task ':packageAll[Variant]TestClassesForMultiDex'.
> java.util.zip.ZipException: duplicate entry: android/support/multidex/BuildConfig.class
Run Code Online (Sandbox Code Playgroud)

我已经能够发现问题只发生在运行connectedAndroidTests任务时,而不是简单地构建项目(构建)时.

android gradle android-multidex

9
推荐指数
1
解决办法
8232
查看次数

为什么在 Rust 中使用动态错误而不是枚举很常见?使用编译时变体是否糟糕/不可能?

我在 Rust 中看到了这种趋势,错误Result是这样返回的:

fn do_something() -> Result<SomeType, Box<dyn std::error::Error>> {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

为什么错误是动态的?来自 C++ 背景并且更std::variant喜欢经典的多态性(我对Rust比较陌生),我对动态分配过敏,所以我只在真正需要的时候使用它们。我还发现 Rust 的枚举中包含变体非常棒。有人可以解释为什么使用错误作为枚举不是标准/首选/常见吗?

error-handling runtime-error dynamic compile-time rust

9
推荐指数
1
解决办法
2239
查看次数

构建X:Y格式的Uri

我正在尝试构建一个Uri,这是一种意图查询地图上某个位置的最正确的方法.在地图意图的文档中,指出Uris应具有以下形式:geo:0,0?q=my+street+address.我尝试使用Uri.Builder,但没有找到指定"0,0" uri部分的方法,因为Uri.Builder没有指定路径的函数而没有预先添加'/'.目前我使用以下代码:

uri = new Uri.Builder()
         .scheme(URL_SCHEME_MAP)
         .encodedOpaquePart("0,0?q=" + query)
         .build();
Run Code Online (Sandbox Code Playgroud)

哪个好,但不如我想要的那么好.所以我想知道是否有人知道更好/更好的方法来做到这一点.

android uri

7
推荐指数
2
解决办法
2548
查看次数

Android配对蓝牙设备没有针脚对话

我想配对我的Android手机和SPP蓝牙没有针脚和确认对话.我有这个代码,注册BroadcastReceiver:

IntentFilter filter = new IntentFilter(ACTION_PAIRING_REQUEST);
                registerReceiver(mPairReceiver, filter); 
                pairDevice(device);
Run Code Online (Sandbox Code Playgroud)

pairDevice方法:

 private void pairDevice(BluetoothDevice device) {
    try {

        Method method = device.getClass().getMethod("createBond", (Class[]) null);
        method.invoke(device, (Object[]) null);
    } catch (Exception e) {
        e.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)

BroadcastReceiver:

private final BroadcastReceiver mPairReceiver = new BroadcastReceiver() {
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        if (ACTION_PAIRING_REQUEST.equals(action)) {    
            System.out.println("ACTION_PAIRING_REQUEST");
            setBluetoothPairingPin(device);
        } 
    }
};
Run Code Online (Sandbox Code Playgroud)

setBluetoothPairingPin方法:

public void setBluetoothPairingPin(BluetoothDevice device)
{
    byte[] pinBytes = convertPinToBytes("0000");
    try {
        Log.d(TAG, …
Run Code Online (Sandbox Code Playgroud)

android bluetooth

7
推荐指数
0
解决办法
2529
查看次数

强制执行SameSite策略的Cookie在iOS 12中被阻止,用于涉及跨源请求的SSO流

摘要:iOS/OS 12中的第三方登录中断!

我们有一个适用于多个网站的通用登录.这在Windows,macOS和iOS上的Firefox,Chrome和Safari中运行良好.但是对于iOS 12和macOS 12,似乎cookie不再从auth0登录窗口工作到我们的登录API.

它不仅在Safari中停止工作,而且在iOS 12上也在Chrome和Firefox中停止工作(它仍适用于Mac OS 12上的Chrome).我怀疑这与智能跟踪预防2.0有关,但我很难找到许多技术细节.

我们的登录流程如下:

  1. 用户单击login,将window.location.href设置为通用(不同)登录域上的登录URL.
  2. 这称为ChallengeAsync,它将用户发送到auth0域进行登录.
  3. 然后将用户发送回登录域,但此时缺少来自auth0的cookie和控制器中设置的会话cookie.

我在启动时使用以下内容:

    services.AddAuthentication(options => {
                    options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
                    options.DefaultChallengeScheme = CookieAuthenticationDefaults.AuthenticationScheme;
                    options.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
                })
                .AddCookie(options =>
                {
                    options.Cookie.Path = "/";
                    options.SlidingExpiration = false;
                })
                .AddOpenIdConnect("Auth0", options => {
                // Set the authority to your Auth0 domain
                options.Authority = $"https://{Configuration["Auth0:Domain"]}";

                // Configure the Auth0 Client ID and Client Secret
                options.ClientId = Configuration["Auth0:ClientId"];
                options.ClientSecret = Configuration["Auth0:ClientSecret"];

                // Set response type to code
                options.ResponseType = "code";

                // Configure the scope …
Run Code Online (Sandbox Code Playgroud)

c# .net-core auth0 ios12

7
推荐指数
1
解决办法
1722
查看次数