我的应用程序在5.1设备上的位置更新工作正常.
从那时起,我做了两件事:生成一个签名的apk.尝试将其部署到6.0设备.
我不知道发生了什么,但现在google api甚至在我的原始设备上也无法正常工作.
这是错误日志的一部分,我认为问题出在哪里:
V/GoogleSignatureVerifier: com.google.android.gms signature not valid. Found:
MIIEQzCCAyugAwIBAgIJAMLgh0ZkSjCNMA0GCSqGSIb3DQEBBAUAMHQxCzAJBgNVBAYTAlVTMRMw
EQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29n
bGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDAeFw0wODA4MjEyMzEz
MzRaFw0zNjAxMDcyMzEzMzRaMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYw
FAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5k
cm9pZDEQMA4GA1UEAxMHQW5kcm9pZDCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBAKtW
LgDYO6IIrgqWbxJOKdoR8qtW0I9Y4sypEwPpt1TTcvZApxsdyxMJZ2JORland2qSGT2y5b+3JKke
dxiLDmpHpDsz2WCbdxgxRczfey5YZnTJ4VZbH0xqWVW/8lGmPav5xVwnIiJS6HXk+BVKZF+JcWjA
sb/GEuq/eFdpuzSqeYTcfi6idkyugwfYwXFU1+5fZKUaRKYCwkkFQVfcAs1fXA5V+++FGfvjJ/Cx
URaSxaBvGdGDhfXE28LWuT9ozCl5xw4Yq5OGazvV24mZVSoOO0yZ31j7kYvtwYK6NeADwbSxDdJE
qO4k//0zOHKrUiGYXtqw/A0LFFtqoZKFjnkCAQOjgdkwgdYwHQYDVR0OBBYEFMd9jMIhF1Ylmn/T
gt9r45jk14alMIGmBgNVHSMEgZ4wgZuAFMd9jMIhF1Ylmn/Tgt9r45jk14aloXikdjB0MQswCQYD
VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIG
A1UEChMLR29vZ2xlIEluYy4xEDAOBgNVBAsTB0FuZHJvaWQxEDAOBgNVBAMTB0FuZHJvaWSCCQDC
4IdGZEowjTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBAUAA4IBAQBt0lLO74UwLDYKqs6Tm8/y
zKkEu116FmH4rkaymUIE0P9KaMftGlMexFlaYjzmB2OxZyl6euNXEsQH8gjwyxCUKRJNexBiGcCE
yj6z+a1fuHHvkiaai+KL8W1EyNmgjmyy8AW7P+LLlkR+ho5zEHatRbM/YAnqGcFh5iZBqpknHf1S
KMXFh4dd239FJ1jWYfbMDMy3NS5CTMQ2XFI1MvcyUTdZPErjQfTbQe3aDQsQcafEQPD+nqActifK
Z0Np0IS9L9kR/wbNvyz6ENwPiTrjV2KRkEjH78ZMcUQXg0L3BYHJ3lc69Vs5Ddf9uUGGMYldX3Wf
MBEmh/9iFBDAaTCK
05-18 11:44:43.691 2786-2865/born.speedsteer03 E/DynamiteModule: Failed to load module descriptor class: Didn't find class "com.google.android.gms.dynamite.descriptors.com.google.android.gms.googlecertificates.ModuleDescriptor" on path: DexPathList[[zip file "/data/app/born.speedsteer03-2/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
05-18 11:44:43.696 2786-2865/born.speedsteer03 I/DynamiteModule: Considering local module com.google.android.gms.googlecertificates:0 and remote module com.google.android.gms.googlecertificates:1
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Google Places API获取某个地方的纬度和经度.
我正在关注此示例:Google Directions Android
我这样配置客户端:
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addApi(Places.GEO_DATA_API)
.addApi(Places.PLACE_DETECTION_API)
.addApi(LocationServices.API)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
Run Code Online (Sandbox Code Playgroud)
但接下来:
PendingResult<PlaceBuffer> placeResult = Places.GeoDataApi
.getPlaceById(mGoogleApiClient, placeId);
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
java.lang.IllegalArgumentException: GoogleApiClient is not configured to use the API required for this call.
Run Code Online (Sandbox Code Playgroud)
我该如何解决?
我在Google API控制台上激活了API,我认为我正在配置它,就像示例一样.
我想创建一个机场集合。
机场有很多参数,但为了简单起见,我们假设机场类在机场类模块中定义如下:
'Class Airport
Public name As String ' Stores name of the airport
Public flights As Long ' Stores number of flights in that airport
Run Code Online (Sandbox Code Playgroud)
然后我的模块相当大,但这是我从 Excel 文件读取列并将值存储在机场集合中的部分,删除重复的值:
Dim airports As Collection
Set airports = New Collection
'Putting airports in collection
Dim c As Range
For Each c In wsToCheck.Range("D:D")
On Error Resume Next
Dim airport As New Airport
airport.name = c.Value
airports.Add airport, c.Value
On Error GoTo 0
Next
Run Code Online (Sandbox Code Playgroud)
如果我在中间做
调试.打印机场.名称
我知道这个名字,但是当我知道的时候
调试.打印机场(1).名称
没有打印任何内容(但也没有错误)。
我之前使用过字符串集合并且它可以工作。但我现在每个机场都需要不止一根绳子。
我的代码有什么问题?我使用集合正确吗?
假设我有一个大接口 IShape,它继承自 Circle、Square、Triangle...。
IShape已经变得非常大,并且具有处理不相关主题的功能:例如,许多用于尺寸计算,其他用于移动和动画,其他用于着色等。
这违反了接口隔离和单一职责原则,因此我试图找到更适合我的情况的设计模式,但我不确定什么是最好的方法。
我正在考虑将 IShape 分解为更小的接口:IDimensions、IMovement、IColour...,然后让 Circle、Square 和 Triangle 继承它们。这将解决胖接口的问题(尽管实现仍然很大)。
我应该遵循什么方法?