小编Mik*_*fey的帖子

通过Windows 7 x64上的"adb设备"无法通过USB看到Nexus 7

我已经做了很明显的事情 - USB驱动程序是从最新的Android SDK安装的,并且在平板电脑中打开了USB调试.

当连接Nexus 7时,设备在Windows 设备管理器中显示为"Android Phone"/"Android Composite ADB Device",其属性显示驱动程序版本6.0.0.0,因此安装并运行正确的驱动程序.

这也证明了设备处于USB调试模式,因为如果不是它在Windows中的"便携设备"/"Nexus 7"下显示.

问题是adb devices没有显示设备,Eclipse也(不出意外)也没有提供Nexus 7作为运行应用程序的硬件设备.

我重启了两台设备而没有效果.

我能解决的唯一调试是启用ADB_TRACE=all,但这没有告诉我:

mkh@MULE ~/AppData/Local/Android/android-sdk/platform-tools
$ export ADB_TRACE=all

mkh@MULE ~/AppData/Local/Android/android-sdk/platform-tools
$ adb devices
system/core/adb/adb.c::main():Handling commandline()
system/core/adb/adb_client.c::adb_query():adb_query: host:devices
system/core/adb/adb_client.c::_adb_connect():_adb_connect: host:version
system/core/adb/sysdeps_win32.c::socket_loopback_client():socket_loopback_client: port 5037 type tcp => fd 100
system/core/adb/transport.c::writex():writex: fd=100 len=4: 30303063 000c
system/core/adb/transport.c::writex():writex: fd=100 len=12: 686f73743a76657273696f6e host:version
system/core/adb/transport.c::readx():readx: fd=100 wanted=4
system/core/adb/transport.c::readx():readx: fd=100 wanted=4 got=4
4f4b4159 OKAY
system/core/adb/adb_client.c::_adb_connect():_adb_connect: return fd 100
system/core/adb/adb_client.c::adb_connect():adb_connect: service host:devices
system/core/adb/transport.c::readx():readx: fd=100 wanted=4 …
Run Code Online (Sandbox Code Playgroud)

android adb sideloading

180
推荐指数
9
解决办法
17万
查看次数

在Scala中避免while循环有什么好处吗?

阅读由专家撰写的Scala文档可以得到尾部递归优于while循环的印象,即使后者更简洁明了.这是一个例子

object Helpers {
    implicit class IntWithTimes(val pip:Int) {
            // Recursive
        def times(f: => Unit):Unit = {
            @tailrec
            def loop(counter:Int):Unit = {
                if (counter >0) { f; loop(counter-1) }
            }
            loop(pip)
        }

            // Explicit loop
        def :@(f: => Unit) = {
            var lc = pip
            while (lc > 0) { f; lc -= 1 }
        }   
    }
}   
Run Code Online (Sandbox Code Playgroud)

(要清楚的是,专家根本没有解决循环问题,但在这个例子中,他们选择以这种方式编写一个循环,就好像本能一样,这就是我提出的问题:我是否应该发展出类似的本能.. )

while循环唯一可能更好的方面是迭代变量应该是循环体的局部变量,并且变量的变异应该在固定的位置,但Scala选择不提供该语法.

清晰度是主观的,但问题是(尾部)递归样式是否提供了改进的性能?

scala

18
推荐指数
2
解决办法
8433
查看次数

使用参数默认值键入擦除

以下内容无法编译:

package play

object Stats2 {
  def variance(data: Seq[Double], dof: Int = 0): Double = {
    println("variance Double direct"); 1.0
  }
  def variance[T](data:Seq[T], dof: Int = 0)(implicit ex: T => Double): Double = {
    println("variance Double extracted"); 1.0
  }
} 
Run Code Online (Sandbox Code Playgroud)

编译器说:

$ scalac erasure2.scala 
erasure2.scala:7: error: double definition:
method variance$default$2:[T]=> Int and
method variance$default$2:=> Int at line 4
have same type after erasure: ()Int
  def variance[T](data:Seq[T], dof: Int = 0)(implicit ex: T => Double): Double = {
                               ^
one error …
Run Code Online (Sandbox Code Playgroud)

scala type-erasure default-parameters

5
推荐指数
1
解决办法
146
查看次数

为什么一个方法覆盖除了调用超级实现之外什么都不会崩溃我的应用程序

为了理解Android生命周期,android.support.v7.app.AppCompatActivity#AppCompatActivity我简单地重写了许多"on"方法来记录它们的执行.

我添加了以下内容:

// This override will crash app!
override fun onCreateView(name: String?, context: Context?, attrs: AttributeSet?): View {
    //log {"onCreateView(3)"}
    return super.onCreateView(name, context, attrs)
}
Run Code Online (Sandbox Code Playgroud)

结果是应用程序现在崩溃:

06-18 06:56:54.627 1004-1004/com.hanafey.prefone E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.hanafey.prefone, PID: 1004
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.hanafey.prefone/com.hanafey.prefone.MainActivity}: android.view.InflateException: Binary XML file line #24: Error inflating class LinearLayout
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
        at android.app.ActivityThread.access$800(ActivityThread.java:151)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:135)
        at android.app.ActivityThread.main(ActivityThread.java:5254)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
     Caused by: …
Run Code Online (Sandbox Code Playgroud)

android android-support-library

5
推荐指数
1
解决办法
71
查看次数

为什么Scala不允许在函数类型定义中使用参数名称?

Scala不允许说:

def m(f:(numer:Double,denom:Double)=>tan:Double) = {...}
Run Code Online (Sandbox Code Playgroud)

就像使用类型注释变量意味着变量至少具有一些文档一样,因此允许函数类型定义中的变量提供一些文档.由于它是可选的,程序员将决定何时这样做.但上述内容肯定比以下内容更具信息性:

def m(f:(Double,Double)=>Double) = {...}
Run Code Online (Sandbox Code Playgroud)

这会增加灵活性会破坏语言语法吗?

scala

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

为什么scala元组访问语法不容易键入?

我发现自己想要避免元组只是因为访问语法很难看.鉴于arity是有限的,为什么Scala不支持更好的语法,看起来更好,更容易键入?这是我的建议:

val t = (1,2,3)
// Proposed equivalent reference syntax.
assert(t.a == t._1)
assert(t.b == t._2)
assert(t.c == t._3)
Run Code Online (Sandbox Code Playgroud)

那么,我想要优雅,还是只是愚蠢?

scala

0
推荐指数
1
解决办法
130
查看次数