相关疑难解决方法(0)

如何在React Native中显示动画gif?

如何在本机中显示动画gif.这就是我尝试过的.

<Image source={{uri: "loading"}} />

它适用于.png文件,但是当我使用.gif文件时,它是空白的.我在某处尝试将.gif重命名为.png,但只显示动画gif的一帧而没有动画.有任何想法吗?

react-native

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

Android Gradle - 使用什么而不是compileOnly?

根据以下SO帖子,最近compile已经成为implementation:在gradle中实现和编译之间什么区别

我的问题是我应该使用什么而不是compileOnly?上面的帖子没有解决该gradle配置问题.我知道我仍然可以使用,compileOnly但推荐的配置是什么,不会很快弃用?

似乎包含的所有配置都..compile..将被替换..implementation...我试过implementationOnly但不被Android Studio接受.

android gradle android-studio build.gradle android-gradle-plugin

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

"提供的文件"和"编译"之间有什么区别

在Android Studio的"依赖关系"选项卡的"模块设置"中,您可以选择库文件的范围."编译"和"提供"有什么区别?

dependencies gradle android-studio

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

android Canary 3.0 beta 5未知元素<library>找到

我正在尝试添加mopub.但是当我这样做时,构建清单会添加一个库标签,然后说它不知道它是什么.如果我删除链接,一切正常.

compile('com.mopub:mopub-sdk:4.16.0@aar') {
    transitive = true
}
Run Code Online (Sandbox Code Playgroud)

<library android:name="moat-mobile-app-kit" />

错误:(34)找到未知元素

错误:E:\ Web\Studio\Opus\app\build\intermediates\manifests\full\live\debug\AndroidManifest.xml:找到34个未知元素

错误:java.util.concurrent.ExecutionException:com.android.builder.internal.aapt.AaptException:AAPT2链接失败:

错误:com.android.builder.internal.aapt.AaptException:AAPT2链接失败:错误:任务':app:processLiveDebugResources'的执行失败.无法执行aapt

android mopub

19
推荐指数
4
解决办法
1881
查看次数

使用 Kapt 和 Gradle 中的实现声明依赖项时,它们之间有什么区别?

kapt在声明依赖项时,Gradle和之间有什么区别implementation,以及何时应该使用其中一个而不是另一个?

例子:

//Room Components
implementation "androidx.room:room-runtime:$rootProject.roomVersion"
kapt "androidx.room:room-compiler:$rootProject.roomVersion"

// dagger
implementation "com.google.dagger:dagger:$rootProject.ext.daggerVersion"
kapt "com.google.dagger:dagger-android processor:$rootProject.ext.daggerVersion"
Run Code Online (Sandbox Code Playgroud)

android gradle kotlin android-studio android-gradle-plugin

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

为什么Gradle在编译/运行时类路径中不包含传递依赖?

我正在学习Gradle如何工作,我无法理解它如何解决项目传递依赖.

目前,我有两个项目:

  • projectA:它对外部库有一些依赖性
  • projectB:对projectA只有一个依赖项

无论我如何尝试,当我构建projectB时,gradle不包含projectB的编译或运行时类路径中的任何projectA依赖项(X和Y).我只是通过在projectB的构建脚本中包含projectA的依赖项来设法使它工作,在我看来这没有任何意义.这些依赖项应自动附加到projectB.我很确定我错过了什么,但我无法弄清楚是什么.

我已经读过"lib dependencies",但它似乎只适用于此处描述的本地项目,而不适用于外部依赖项.

这是我在根项目中使用的build.gradle(包含projectA和projectB的那个):

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.3'
    }
}

subprojects {
    apply plugin: 'java'
    apply plugin: 'idea'

    group = 'com.company'

    repositories {
        mavenCentral()
        add(new org.apache.ivy.plugins.resolver.SshResolver()) {
            name = 'customRepo'
            addIvyPattern "ssh://.../repository/[organization]/[module]/[revision]/[module].xml"
            addArtifactPattern "ssh://.../[organization]/[module]/[revision]/[module](-[classifier]).[ext]"
        }
    }

    sourceSets {
        main {
            java {
                srcDir 'src/'
            }
        }
    }

    idea.module { downloadSources = true }

    // task that create sources jar
    task sourceJar(type: Jar) {
        from sourceSets.main.java
        classifier 'sources'
    } …
Run Code Online (Sandbox Code Playgroud)

build build-system dependency-management

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

当"实现"用于库的库依赖时,ClassNotFoundException

我刚刚创建了一个库并上传到bintray和jcenter.

在我的测试应用程序中,此库作为模块添加:

implementation project(':dropdownview')

一切都井井有条.

将库模块上传到jcenter后,我改为使用它:

implementation 'com.asksira.android:dropdownview:0.9.1

然后,当库尝试调用依赖于另一个库的方法时,会发生运行时错误:

Caused by: java.lang.ClassNotFoundException: Didn't find class "com.transitionseverywhere.TransitionSet" on path: DexPathList[[zip file "/data/app/com.asksira.dropdownviewdemo-6fj-Q2LdwKQcRAnZHd2jlw==/base.apk"],nativeLibraryDirectories=[/data/app/com.asksira.dropdownviewdemo-6fj-Q2LdwKQcRAnZHd2jlw==/lib/arm64, /system/lib64, /system/vendor/lib64]]
Run Code Online (Sandbox Code Playgroud)

(我按照本指南发布了库.我在使用相同的方法之前已经发布了3个库,它们都运行良好;但这是我第一次在我自己的库中包含另一个第三方库依赖项.)

编译与实现

然后我尝试更改我的库的第三方库依赖项

implementation 'com.andkulikov:transitionseverywhere:1.7.9'

compile 'com.andkulikov:transitionseverywhere:1.7.9'

(请注意,这不是app对我的库的依赖,而是我的库到另一个库)

然后再次上传到版本0.9.2的bintray.

implementation 'com.asksira.android:dropdownview:0.9.2

这次它工作了吗?!

我的问题

这是Android Studio/Gradle的某种错误(但Google表示他们将在compile2018年底删除...),或者我做错了什么?

可在此处找到v0.9.1的完整源代码.

请注意,我并没有直接访问任何方法appTransitionsEverywhere.具体来说,ClassNotFoundException当我点击DropDownView,并DropDownView调用expand()哪个是public内部方法时发生.

更多信息

为了消除等因素的影响,以下是我已经改变之前试过的东西implementationcompile,根本没有运气:

  1. 清洁和重建
  2. 卸载app + clean并重新构建
  3. 使应用程序成为MultiDexApplication
  4. 即时运行已被禁用

dependencies android gradle android-studio android-gradle-plugin

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

android studio生成依赖的aar

我有一个库项目(A)引用另一个jar文件(B.jar),但是在生成aar文件之后,jar文件(B.jar)没有捆绑在输出aar文件中,当使用这个aar文件时,我得到了a NoClassDefFoundError.

有没有办法让gradle捆绑输出aar文件中的所有依赖类?这是我的build.gradle:

apply plugin: 'com.android.library'

repositories {
    mavenCentral()
}

android {

    buildTypes {
        release {
            runProguard true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.txt'
        }
    }
}

dependencies {
    compile project(':common')
    compile fileTree(dir: 'libs', include: ['*.jar'])
}
Run Code Online (Sandbox Code Playgroud)

android gradle android-studio

6
推荐指数
2
解决办法
1994
查看次数

使用房间时"无法合并dex"

我正在尝试为我的项目添加一个"房间".

当我尝试构建项目时,我收到一个错误:

错误:任务':app:transformDexArchiveWithExternalLibsDexMergerForDebug'的执行失败.java.lang.RuntimeException:java.lang.RuntimeException:com.android.builder.dexing.DexArchiveMergerException:无法合并dex

我已经做了什么:

  1. 清洁/重建项目
  2. 我在defaultConfig {}中添加了"multiDexEnabled true".然后我得到错误:

    错误:任务':app:transformClassesWithMultidexlistForDebug'的执行失败.java.io.IOException:无法写[C:\ Users\user1\AndroidStudioProjects\git\mobile\app\build\intermediates\multi-dex\debug\componentClasses.jar](无法读取[C:\ Users]\user1.gradle\caches\transforms-1\files-1.1\support-core-utils-26.1.0.aar\a6c34f6784b0b6bc5c2fc7a7815426da\jars\classes.jar(;;;;;;**.class)](重复邮编entry [classes.jar:android/support/v4/content/PermissionChecker $ PermissionResult.class]))

如果我从项目中删除"房间",则构建没有错误.

我正在使用Android Studio 3,gradle构建工具3.0.0.

这是我的build.gradle:

apply plugin: 'com.android.application'
apply plugin: 'me.tatarka.retrolambda'

buildscript {
   repositories {
       mavenCentral()
   }

   dependencies {
       classpath 'me.tatarka:gradle-retrolambda:3.2.5'
   }
}

repositories {
    mavenCentral()
}

android {
   compileSdkVersion 23
   buildToolsVersion '26.0.2'

   defaultConfig {
        applicationId "trsnet.gtp2.com"
        minSdkVersion 17
        targetSdkVersion 23
        multiDexEnabled true
   }

   buildTypes {
       release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 
                'proguard-rules.txt'
       }
   }

   compileOptions {
       sourceCompatibility JavaVersion.VERSION_1_8
       targetCompatibility JavaVersion.VERSION_1_8
   }

}

dependencies {

    compile …
Run Code Online (Sandbox Code Playgroud)

android android-room

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

Java中注解的目的是什么?

我知道注释用于修改代码而不实际是代码,例如:

@Author(
   name = "Benjamin Franklin",
   date = "3/27/2003"
)
Run Code Online (Sandbox Code Playgroud)

但我不明白如何使用注释比只说 name = "Benjamin Franklin" 更好/更清晰/更简洁?添加注解如何加强代码?

编辑:对不起,另一个问题,但我知道@Override 可以帮助防止/跟踪调用方法或类时的拼写错误,但它是如何做到的?它对实际程序有帮助吗?

java annotations

5
推荐指数
2
解决办法
883
查看次数