小编mis*_*han的帖子

Google Play APK和Android Studio APK(USB调试)表现不同

我之前发布了一个问题:'没有类的args构造函数不存在',但是当我通过Android Studio在我的手机上使用USB调试模式测试它时,它确实得到了答案.但是,当我将应用推送到Google Play时,它会停止工作并导致我在该问题中描述的相同错误.我今天重复测试,同样的事情发生了.

为了澄清,我正在测试:

  • 完全相同的代码
  • 在完全相同的手机上
  • 运行完全相同的Android版本
  • 使用完全相同的图像

谷歌播放APK的行为与Android Studio APK有什么不同?或者我错过了什么?

android gson google-play android-studio

12
推荐指数
1
解决办法
330
查看次数

Python UDP客户端/服务器程序,问题

我正在尝试编写一个基本的客户端/服务器回显程序,以基于select()来测试定时器的重传用法(尽管我不得不注释掉该位以简化调试时它没有按预期工作).以下是相关代码的片段:

服务器:

from socket import *
import sys
import select
address = ('localhost', 6005)
server_socket = socket(AF_INET, SOCK_DGRAM)
server_socket.bind(address)

while(1):
    print "Listening"
    recv_data, addr = server_socket.recvfrom(2048)
    print recv_data
    if recv_data == "Request 1" :
        print "Received request 1"
        server_socket.sendto("Response 1", address)
    elif recv_data == "Request 2" :
        print "Received request 2"
        data = "Response 2"
        server_socket.sendto(data, address)
Run Code Online (Sandbox Code Playgroud)

客户:

from socket import *
import sys
import select

address = ('localhost', 6005)
client_socket = socket(AF_INET, SOCK_DGRAM)

num_retransmits = 0
while(num_retransmits < 60): …
Run Code Online (Sandbox Code Playgroud)

python sockets udp

10
推荐指数
1
解决办法
4万
查看次数

读取com.google.android.apps.photos.contentprovider.MediaContentProvider要求导出提供程序,或grantUriPermission()

我收到了来自Android 6.0.1用户的崩溃报告:

STACK_TRACE=java.lang.SecurityException: Permission Denial: reading com.google.android.apps.photos.contentprovider.MediaContentProvider uri content://com.google.android.apps.photos.contentprovider/0/1/content%3A%2F%2Fmedia%2Fexternal%2Fimages%2Fmedia%2F19181/ORIGINAL/NONE/443149508 from pid=18891, uid=10128 requires the provider be exported, or grantUriPermission()
at android.os.Parcel.readException(Parcel.java:1620)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:183)
at android.database.DatabaseUtils.readExceptionWithFileNotFoundExceptionFromParcel(DatabaseUtils.java:146)
at android.content.ContentProviderProxy.openTypedAssetFile(ContentProviderNative.java:692)
at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:1104)
at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:942)
at android.content.ContentResolver.openInputStream(ContentResolver.java:662)
at fr.free.nrw.commons.upload.UploadService.uploadContribution(UploadService.java:176)
at fr.free.nrw.commons.upload.UploadService.handle(UploadService.java:114)
at fr.free.nrw.commons.upload.UploadService.handle(UploadService.java:27)
at fr.free.nrw.commons.HandlerService$ServiceHandler.handleMessage(HandlerService.java:19)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.os.HandlerThread.run(HandlerThread.java:61)
Run Code Online (Sandbox Code Playgroud)

从周围看,这似乎与Google相册许可有关com.google.android.apps.photos.permission.GOOGLE_PHOTOS。我的清单中已经具有此权限,但是该用户正在运行API 23,该API需要运行时权限。

问题是,如何为此调用运行时权限?我知道如何针对https://developer.android.com/training/permissions/requesting.html#perm-check所述的标准权限执行此操作,但是当我尝试执行此操作时

ActivityCompat.requestPermissions(thisActivity,
                    new String[]{com.google.android.apps.photos.permission.GOOGLE_PHOTOS},
Run Code Online (Sandbox Code Playgroud)

它不会编译。

我需要在运行时请求才能从Google相册访问图像的权限的名称是什么?

android android-permissions google-photos android-6.0-marshmallow

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

在范围上使用PLINQ AsParallel()

我想用PLINQ方法AsParallel()重写这个Parallel.For循环.据我所知,AsParallel()需要将整个序列传递给它,例如创建数组A,然后调用A.AsParallel().ForAll或A.AsParallel().选择.有没有办法让AsParallel()在一个范围内工作 - 在这种情况下,从低到高?

for k = 2 to m+n do
    let low = max 1 (k-m)
    let high = min (k-1) n
    Parallel.For(low, high + 1, (fun j ->
Run Code Online (Sandbox Code Playgroud)

f# plinq task-parallel-library

4
推荐指数
1
解决办法
287
查看次数

从F#中的引用数组访问元素

正在尝试使用数组和引用 - 我的目的是创建对数组的引用,然后在闭包内使用该引用来访问数组的某个元素.FSI尝试:

> let dk2 = Array.create 5 0
let dk2ref = ref dk2;;

val dk2 : int [] = [|0; 0; 0; 0; 0|]
val dk2ref : int [] ref = {contents = [|0; 0; 0; 0; 0|];}

> !dk2ref.[1]

stdin(3,2): error FS0039: The field, constructor or member 'Item' is not defined
Run Code Online (Sandbox Code Playgroud)

有没有直接的方法来访问引用数组的元素?(在这种情况下,dk2ref的第二个元素)?

f#

3
推荐指数
1
解决办法
471
查看次数

F#中的“ T”和“ U”是什么意思?

例如http://msdn.microsoft.com/en-us/library/ee370378.aspx示例中的List.map : ('T -> 'U) -> 'T list -> 'U list

抱歉,这听起来很简单,但在Google搜索中没有找到任何解释。

谢谢!

f#

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


在真实Android设备上测试应用时无效的URI,但在模拟器上进行测试时有效

我有一个应用程序,提取上传图像的GPS坐标(通过ExifInterface) - 为了这样做,它必须将图像的Uri转换为其文件路径.它适用于在仿真器(两个仿真器,不同的Android版本)上进行测试,但在真正的Android设备上进行测试时不起作用.

真实设备上的错误输出:

01-08 19:39:35.203: D/fr.free.nrw.commons.upload.ShareActivity(16980): Uri: content://media/external/images/media/10716
01-08 19:39:35.203: W/Image(16980): java.lang.IllegalArgumentException: Invalid URI: content://media/external/images/media/10716
01-08 19:39:35.203: W/Image(16980):     at android.provider.DocumentsContract.getDocumentId(DocumentsContract.java:752)
01-08 19:39:35.203: W/Image(16980):     at fr.free.nrw.commons.upload.FilePathConverter.getFilePath(FilePathConverter.java:31)
01-08 19:39:35.203: W/Image(16980):     at fr.free.nrw.commons.upload.ShareActivity.onCreate(ShareActivity.java:193)
01-08 19:39:35.203: W/Image(16980):     at android.app.Activity.performCreate(Activity.java:6289)
01-08 19:39:35.203: W/Image(16980):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
01-08 19:39:35.203: W/Image(16980):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2655)
01-08 19:39:35.203: W/Image(16980):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2767)
01-08 19:39:35.203: W/Image(16980):     at android.app.ActivityThread.access$900(ActivityThread.java:177)
01-08 19:39:35.203: W/Image(16980):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1449)
01-08 19:39:35.203: W/Image(16980):     at android.os.Handler.dispatchMessage(Handler.java:102)
01-08 19:39:35.203: W/Image(16980):     at android.os.Looper.loop(Looper.java:145)
01-08 19:39:35.203: W/Image(16980):     at android.app.ActivityThread.main(ActivityThread.java:5951)
01-08 19:39:35.203: …
Run Code Online (Sandbox Code Playgroud)

android uri emulation filepath

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

onRequestPermissionsResult()没有在片段中调用,尝试了我能找到的所有解决方案

我运行代码时从不调用onRequestPermissionsResult().我的片段中有一个请求权限的方法:

void initiateGalleryUpload() {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            if (ContextCompat.checkSelfPermission(getActivity(), READ_EXTERNAL_STORAGE) != PERMISSION_GRANTED) {
                if (shouldShowRequestPermissionRationale(READ_EXTERNAL_STORAGE)) {
                    new AlertDialog.Builder(getActivity())
                            .setMessage(getString(R.string.read_storage_permission_rationale))
                            .setPositiveButton("OK", (dialog, which) -> {
                                Timber.d("Requesting permissions for read external storage");
                                requestPermissions(new String[]{READ_EXTERNAL_STORAGE}, 1);
                                dialog.dismiss();
                            })
                            .setNegativeButton("Cancel", null)
                            .create()
                            .show();
                } else {
                    requestPermissions(new String[]{READ_EXTERNAL_STORAGE},
                            1);
                }
            } else {
                controller.startGalleryPick();
            }
        }
        else {
            controller.startGalleryPick();
        }
Run Code Online (Sandbox Code Playgroud)

并且同一片段中的另一个方法覆盖onRequestPermissionsResult:

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    Timber.d("onRequestPermissionsResult: req code = " + " perm = …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-permissions

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