小编Bil*_*ill的帖子

为什么我的应用要求"防止手机睡觉"权限?

当我安装我的应用程序时,它要求获得此权限:

防止电话睡觉

我假设它来自WAKE_LOCK权限,但我的应用程序没有指定.这是我的清单中的权限列表:

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
Run Code Online (Sandbox Code Playgroud)

我正在与ACRA和Google Analytics进行关联,但不知道这些权限是如何产生的.

更新:这是我的主模块的build.gradle.它确实包括谷歌游戏分析:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.0.1'
    compile project(':acra-4.7.0')
    compile 'com.google.android.gms:play-services-analytics:8.4.0'
}

apply plugin: 'com.google.gms.google-services'
Run Code Online (Sandbox Code Playgroud)

更新:正如CommonsWare所建议的那样,清单中发现了罪魁祸首:

ADDED from [com.google.android.gms:play-services-basement:8.4.0] 
C:\Users\Bill\Workspace\NetworkExplorer\app\build\intermediates\exploded-
    aar\com.google.android.gms\play-services-basement\
8.4.0\AndroidManifest.xml:23:13-66
uses-permission#android.permission.WAKE_LOCK
Run Code Online (Sandbox Code Playgroud)

对于简单的Google Analytics报告,我似乎不需要WAKE_LOCK.

android manifest

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

Android Studio minSdkVersion无效

我的build.gradle中的minSdkVersion指令似乎不起作用(Android Studio 0.8.2)

这是"移动"模块的build.gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 20
    buildToolsVersion "20.0.0"

    defaultConfig {
        minSdkVersion 9
        targetSdkVersion 20
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    wearApp project(':wear')
    compile 'com.android.support:appcompat-v7:20.+'
    compile 'com.google.android.gms:play-services-wearable:+'
}
Run Code Online (Sandbox Code Playgroud)

当我尝试在我的Samsung Galaxy S4(API 19)上调试它时,我在"Compatible"列中看到此消息:

"不,minSdk(API 20)> deviceSdk(API 19)"

最小SDK应该明确为build.gradle指定的9.如果我尝试启动它,我得到:

"失败[INSTALL_FAILED_OLDER_SDK]"

我已经在这个项目中搜索了可能强制minSdk为20的任何迹象.在AndroidManifest.xml中没有任何内容.这个项目是一个可穿戴的应用程序.

我在同一台机器上构建了另一个可穿戴应用程序,它在三星上加载和运行没有问题.我试图使用的这个应用程序是由朋友放在一起的.它只有少量代码.build.gradles是相同的.

完全莫名其妙.请帮忙!

android gradle

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

从OpenSSLSocketImpl(而不是SSLSocket)派生Android自定义套接字

对不起,这是一个很长的问题,但它有点牵扯.谢谢阅读.

我有一个自定义套接字工厂和套接字类(Android 5.0),我已经开发它来执行我需要在该级别执行的一些特定任务.这是我的套接字工厂和套接字(为简洁起见,我省略了许多方法):

public class CustomSocketFactory extends SSLSocketFactory {
private final SSLSocketFactory delegate;

public CustomSocketFactory(SSLSocketFactory delegate) {
    this.delegate = delegate;
}

private Socket createCustomSocket(Socket socket) {
    if (socket instanceof SSLSocket) {
        socket = new CustomSocket((SSLSocket) socket);
    }
    return socket;
}

@Override
public Socket createSocket(Socket s, String host, int port, boolean autoClose) throws IOException {
    return createCustomSocket(delegate.createSocket(s, host, port, autoClose));
}

@Override
public Socket createSocket(String host, int port) throws IOException {
    return createCustomSocket(delegate.createSocket(host, port));
}


private class CustomSocket extends SSLSocket { …
Run Code Online (Sandbox Code Playgroud)

sockets android

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

升级到PHP 5.4.0后调用未定义的方法

被这一个难倒.这段代码给了我

PHP致命错误:调用未定义的方法MyObject :: helloWorld()

但只是第二次运行它,第一次运行正常.

class MyObject
{

  function __construct()
  {
    echo("creating MyObject...");
  }


  public function helloWorld()
  {
    echo("Hello World!");
  }


}

$obj = new MyObject();
$obj->helloWorld();
Run Code Online (Sandbox Code Playgroud)

我也看到第二次生成"创建MyObject ...",但不是"Hello World!".

我正在升级到PHP 5.4.0.

我必须遗漏一些非常明显的东西.

php apc fatal-error

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

标签 统计

android ×3

apc ×1

fatal-error ×1

gradle ×1

manifest ×1

php ×1

sockets ×1