小编cop*_*lii的帖子

app(22.0.0)和测试app(21.0.3)的已解决版本有所不同

升级到API 22并支持lib版本22后,我收到以下警告:

警告:与依赖项"com.android.support:support-annotations"冲突.app(22.0.0)和测试app(21.0.3)的已解决版本有所不同.

Gradle本身更宽容,但Android Studio并没有那么多.

我没有使用21.0.3声明的依赖项...是使用21.0.3的依赖库之一而谷歌忘了用批处理的其余部分更新它?

build.gradle的附加功能被删除了

android {
  compileSdkVersion 22
  buildToolsVersion '22'

  defaultConfig {
    applicationId "com.REDACTED.android"
    minSdkVersion 14
    targetSdkVersion 22
    renderscriptSupportModeEnabled true
    versionName '1.0.0'
    versionCode 100
  }

  buildTypes {
    release {
      minifyEnabled true
      zipAlignEnabled true
      signingConfig signingConfigs.release
    }

    debug {
      minifyEnabled false
      zipAlignEnabled true
      signingConfig signingConfigs.debug
    }
  }

  dependencies {
    provided 'org.projectlombok:lombok:1.16.2'
    googleCompile 'com.google.android.gms:play-services-base:6.5.87'
    compile 'com.android.support:support-v4:22.0.0'
    compile 'com.android.support:appcompat-v7:22.0.0'
    compile 'com.android.support:support-v13:22.0.0'
    compile 'com.android.support:cardview-v7:22.0.0'
    compile 'com.android.support:palette-v7:22.0.0'
    compile 'com.android.support:support-annotations:22.0.0'
    compile 'com.github.chrisbanes.photoview:library:1.2.3'
    compile 'org.apache.commons:commons-lang3:3.3.2'
    compile 'commons-io:commons-io:2.4'
    compile 'commons-codec:commons-codec:1.10'
    compile 'com.jakewharton:butterknife:6.1.0'
    compile …
Run Code Online (Sandbox Code Playgroud)

android android-support-library

179
推荐指数
6
解决办法
9万
查看次数

错误:升级到lombok 1.16.2后,包javax.annotation不存在

我的android项目使用lombok 1.16.0构建正常,但是一旦我将我的依赖项更改为目标1.16.2,我在使用lombok注释时到处都会出现以下错误:

Error:(20, 1) error: package javax.annotation does not exist

Android SDK不包含所有javax包.我想知道的是,如果这是1.16.2中的错误,还是我现在必须添加一个依赖javax.annotation

注意:这是在带有Lombok插件0.8.8的Android Studio中

java android lombok intellij-lombok-plugin

54
推荐指数
2
解决办法
3万
查看次数

IntelliJ IDEA无法看到Lombok生成的代码

我有一个使用lombok的基于Gradle的项目.我已将此项目导入IntelliJ IDEA 14.1(使用导入外部模型导入方法).我可以在Gradle中没有问题地运行JUnit4单元测试,但IntelliJ似乎在看到Lombok生成的Getters时遇到了问题.这使我无法在IDEA中运行测试.

为了确保它不是一个设置问题,我创建了一个非常简单的项目,并确认在简单的测试项目中出现了同样的问题.

我的版本:Gradle:gradle-2.3-all通过Gradle包装器
Intellij IDEA:IU-141.713
Lombok插件:0.9.2

我在这里错过了什么?

更新通过看不出我的意思是身体不可见.我是说这个:

/home/meeee/workspace/junit-lombok-idea/lib/src/main/java/com/example/jumbokea/Main.java
Error:(10, 11) java: cannot find symbol
  symbol:   method setIntField(int)
  location: variable sc of type com.example.jumbokea.SomeClass
Error:(12, 41) java: cannot find symbol
  symbol:   method getIntField()
  location: variable sc of type com.example.jumbokea.SomeClass
Error:(14, 33) java: constructor AnotherClass in class com.example.jumbokea.AnotherClass cannot be applied to given types;
  required: no arguments
  found: float,com.example.jumbokea.SomeClass
  reason: actual and formal argument lists differ in length
Error:(16, 46) java: cannot …
Run Code Online (Sandbox Code Playgroud)

java intellij-idea junit4 lombok intellij-lombok-plugin

45
推荐指数
5
解决办法
6万
查看次数

在APK内编码/解码AndroidManifest.xml

我正在使用ApkToolAndroidManifest.xml在APK文件中进行解码并且它工作得很好但是我怎么能再次编码它,就像之前编码一样,应用了一些更改后呢?例如(在我的情况下)更改应用程序标签.

android encode decode android-manifest apk

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

无法使用转换JetifyTransform转换文件'some-lib-release.aar'以匹配属性{artifactType = processed-aar}

我有2个模块的一个项目:一个应用程序(JAVA)与构建类型debug,release以及enterprise和科特林库(release以及debug由应用程序使用).

我正在使用AndroidX并且在我的内容中有以下内容gradle.properties:

android.useAndroidX=true
android.enableJetifier=true
Run Code Online (Sandbox Code Playgroud)

如果我通过Gradle运行项目,我会收到一堆编译错误(预期).但是,如果我尝试在Android Studio(3.2 Beta 5)中使用它,特别是在尝试与Gradle模型同步时,我会得到:

Unable to resolve dependency for ':app@debug/compileClasspath': Failed to transform file 'some-lib-release.aar' to match attributes {artifactType=processed-aar} using transform JetifyTransform
Unable to resolve dependency for ':app@debugAndroidTest/compileClasspath': Failed to transform file 'some-lib-release.aar' to match attributes {artifactType=processed-aar} using transform JetifyTransform
Unable to resolve dependency for ':app@debugUnitTest/compileClasspath': Failed to transform file 'some-lib-release.aar' to match attributes {artifactType=processed-aar} using transform JetifyTransform
Unable to resolve dependency for ':app@release/compileClasspath': …
Run Code Online (Sandbox Code Playgroud)

android android-studio android-studio-3.2 androidx android-jetifier

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

AccountManager getUserData尽管设置了,但仍返回null

我正在使用一个使用AccountManager存储帐户和凭据的Android应用程序.我遇到的一个问题是,即使我将一堆String值传递给AccountManager的addAccountExplicitly数据包.

我已经检查以确保捆绑包不是空的,并且在添加帐户之前它包含值.大部分时间都是这种情况,但每当我查询这些值时,我偶尔会得到null.

在我刚删除帐户并重新添加后,空返回值更常见.

我在OnAccountsUpdateListener实现的onAccountsUpdated方法中进行查询,因此应该添加该帐户并且很好,对吧?

谢谢你的帮助

AuthenticatorActivity

// in the AuthenticatorActivity
Bundle userData = new Bundle();
userData.put (k1, v1);
userData.put (k2, v2);
userData.put (k3, v3);
userData.put (k4, v4);
userData.put (k1, v1);

Account a = new Account ("acc name", "com.account.type");
AccountManager am = AccountManager.get(this);

OnAccountsUpdateListener listener = new OnAccountsUpdateListener() {

        @Override
        public void onAccountsUpdated(Account[] accounts) {
            Account mine = findAccount(accounts, account); // match account name
            notifySignedIn(mine); // tell …
Run Code Online (Sandbox Code Playgroud)

android accountmanager android-account

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

使用常量查询值声明改进的REST端点

所以我想获取YouTube视频的元数据(比如说这个:) https://www.youtube.com/watch?v=qlTA3rnpgzU.

我要对它进行编码并将其包装在另一个URL中,如下所示: http://www.youtube.com/oembed?url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DqlTA3rnpgzU&format=json

我的界面定义如下所示:

public interface YoutubeApi {
    @GET ("oembed") 
    YoutubeMetaData metaData (@Query (QUERY_VIDEO_URL) final String url,
                              @Query(QUERY_FORMAT) final String alwaysJson);
}
Run Code Online (Sandbox Code Playgroud)

这一切都很好,花花公子,但我不想在这里指定除JSON之外的任何格式(format = json是这个url的固定部分).

有没有办法在我的接口声明中指定它并将我的接口减少到:

public interface YoutubeApi {
    @GET ("oembed") 
    @Magic ("format=json")
    YoutubeMetaData metaData (@Query (QUERY_VIDEO_URL) final String url);
}
Run Code Online (Sandbox Code Playgroud)

谢谢.

java retrofit

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

使用buildToolsVersion 23失败,因为多个dex文件定义'AnimRes'

在您声明重复之前,请阅读问题.

只有最新版本的构建工具才会出现这种情况.旧版本不显示此问题.我已经尝试过在其他问题上提供的解决方案,用于多种定义@AnimRes.到目前为止没有任何帮助,这就是我发布一个新问题的原因.相同症状,不同原因,不同解决方案.

我可以在使用buildToolsVersion 22.0.1时构建没有问题,但是当我切换到buildToolsVersion 23构建失败时出错

意外的顶级异常:com.android.dex.DexException:多个dex文件定义Landroid/support/annotation/AnimRes; 在com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)在com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)在com.android.dx.merge.DexMerger.mergeClassDefs (DexMerger.java:535)在com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)在com.android.dx.merge.DexMerger.merge(DexMerger.java:189)在com.android. dx.command.dexer.Main.mergeLibraryDexBuffers在com.android.dx.command.dexer.Main(Main.java:502)在com.android.dx.command.dexer.Main.runMonoDex(Main.java:334).运行(Main.java:277)在com.android.dx.command.dexer.Main.main(Main.java:245)在com.android.dx.command.Main.main(Main.java:

这是我的依赖项列表:

provided 'org.projectlombok:lombok:1.16.4'
compile 'com.android.support:support-v4:23.0.0'
compile 'com.android.support:appcompat-v7:23.0.0'
compile 'com.android.support:support-v13:23.0.0'
compile 'com.android.support:cardview-v7:23.0.0'
compile 'com.android.support:palette-v7:23.0.0'
compile 'com.google.code.findbugs:jsr305:2.0.1'
compile 'com.google.guava:guava:18.0'
compile 'com.github.chrisbanes.photoview:library:1.2.3'
compile 'org.apache.commons:commons-lang3:3.4'
compile 'commons-io:commons-io:2.4'
compile 'commons-codec:commons-codec:1.10'
compile 'com.jakewharton:butterknife:7.0.1'
compile 'com.squareup:otto:1.3.8'
compile 'org.jsoup:jsoup:1.7.2'
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.squareup.retrofit:retrofit:1.9.0'
compile 'com.squareup.okhttp:okhttp:2.4.0'
compile 'com.squareup.okhttp:okhttp-urlconnection:2.4.0'
compile 'com.squareup.okio:okio:1.5.0'
compile 'com.flaviofaria:kenburnsview:1.0.6'
compile 'com.edmodo:cropper:1.0.1'
compile 'com.getbase:floatingactionbutton:1.10.0'
compile 'com.nispok:snackbar:2.10.10'
compile 'com.github.ksoichiro:android-observablescrollview:1.5.2'
compile 'in.srain.cube:grid-view-with-header-footer:1.0.12'
compile 'de.hdodenhof:circleimageview:1.3.0'
Run Code Online (Sandbox Code Playgroud)

为了确保每个人(包括Espresso)使用相同版本的support-annotations我在我的构建文件中有以下内容:

configurations.all {
  resolutionStrategy.force 'com.android.support:support-annotations:23.0.0'
} …
Run Code Online (Sandbox Code Playgroud)

android android-support-library android-gradle-plugin

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

我可以在Android设备上检测"LED通知"的存在与否吗?

背景:我有一个带通知的应用程序,我想支持LED通知(并且它工作正常).在我的首选项中,我允许用户自定义LED通知.

问题:如果设备不支持它们,我不想显示LED自定义选项,因为它可能会让用户感到困惑(如果你只有廉价的机器人,你不知道什么是LED通知).是否有可用于检测设备是否支持它的API?

如果有"旧"和"新"方式,我可能更喜欢旧的方式,因为我支持的最低API级别为4.

谢谢

LED通知:如果启用,当显示屏关闭时,手机的LED指示灯将闪烁以显示通知.

android led

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

在AccountManager中禁止多个帐户

我已经实现了我的AccountManager身份验证器和服务以及整个交易,这一切似乎都运行良好.

但是,有一个小问题:我只希望我的应用程序的单个帐户存在于帐户管理器中,但似乎无法找到限制此方法的方法.

在添加新帐户之前,我是唯一可以进行搜索并删除当前帐户(按类型)的解决方案吗?

我目前的代码:

private void removeAccounts()
{
    Account [] accounts = mAcctMgr.getAccountsByType (mAccountType);

    if (accounts.length == 0) return;

    final Handler handler = new Handler (); 

    AccountManagerCallback<Boolean> callback = new AccountManagerCallback<Boolean>()
    {
        @Override
        public void run(AccountManagerFuture<Boolean> arg0)
        {
           // nada
        }
    };

    for (Account a : accounts) {
        mAcctMgr.removeAccount (a, callback, handler);
    }
}
Run Code Online (Sandbox Code Playgroud)

我绝不会称之为优雅的解决方案,但此刻似乎是唯一有效的方法.

android accountmanager

12
推荐指数
2
解决办法
5770
查看次数