小编Sne*_*dya的帖子

Android Studio 3.1"运行"不编译代码

当我尝试安装应用程序时,有两种可能性:

  1. 我运行时从build文件夹安装现有的APK app
  2. 执行后安装APK clean build

对于构建文件夹中的现有APK,该应用程序工作正常.但是当我使用Build- > 清理项目Clean Project,然后尝试运行app(即将应用程序安装到我的模拟器或物理设备)时,它会显示错误:

磁盘上不存在APK文件/Users/MyApplicationName/app/build/outputs/apk/app-debug.apk.

注意:此行为仅在我清理项目时发生,而不是在我的构建文件夹中已经有预构建的应用程序APK时

我已经提到:APK文件在磁盘上不存在,但我的观点是,当我们通常在清理项目后运行应用程序时,如果构建文件夹中不存在APK,我们永远不需要构建它,它会自动生成并安装最新版本.

我试过的事情:

  1. 在构建文件夹中存在APK文件时运行应用程序(完美地运行)
  2. 运行Clean Project- >运行应用程序(预计将构建项目,应用程序将安装,但它显示上述错误!)
  3. 这样做后清理和运行应用程序的过程相同 Invalidate Caches/Restart

android android-studio android-gradle-plugin

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

react-native run-android找不到com.android.tools.build:gradle:3.0.1

apple@mosesdeMacBook-Pro:~/Desktop/sxtbdemo2$ react-native run-android
Scanning folders for symlinks in /Users/apple/Desktop/sxtbdemo2/node_modules (8ms)
JS server already running.
Building and installing the app on the device (cd android && ./gradlew installDebug)...

FAILURE: Build failed with an exception.

What went wrong:
A problem occurred configuring root project 'sxtbdemo2'.
Could not resolve all files for configuration ':classpath'.
Could not find com.android.tools.build:gradle:3.0.1.
 Searched in the following locations:
     https://jcenter.bintray.com/com/android/tools/build/gradle/3.0.1/gradle-3.0.1.pom
     https://jcenter.bintray.com/com/android/tools/build/gradle/3.0.1/gradle-3.0.1.jar
 Required by:
     project :

 Try:
     Run with --stacktrace option to get the stack trace. Run with --info or …
Run Code Online (Sandbox Code Playgroud)

android react-native

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

Android中RuntimeException("Stub!")的含义

我在Android代码中浏览,因为我想查看Activity.finish()方法的内容.

我只想确认在Activity.finish()那里会调用onDestroy()方法.

但我在这种方法(以及许多其他方法)中发现的是:

public void finish() {
    throw new RuntimeException("Stub!");
}
Run Code Online (Sandbox Code Playgroud)

那么在哪里可以找到真正破坏活动的代码?谢谢!

java android stub android-activity

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

找不到com.android.tools.build:gradle:3.0.0

当我尝试从命令行构建可能的Android项目时,我收到以下错误消息:

配置项目':mylib'时出现问题.无法解析配置':mylib:classpath'的所有文件.找不到com.android.tools.build:gradle:3.0.0.在以下位置搜索:
https://jcenter.bintray.com/com/android/tools/build/gradle/3.0.0/gradle-3.0.0.pom
https://jcenter.bintray.com/com/android /tools/build/gradle/3.0.0/gradle-3.0.0.jar https://repo1.maven.org/maven2/com/android/tools/build/gradle/3.0.0/gradle-3.0.0. pom
https://repo1.maven.org/maven2/com/android/tools/build/gradle/3.0.0/gradle-3.0.0.jar 必需:project:mylib

当我尝试通过浏览器直接访问地址" https://jcenter.bintray.com/com/android/tools/build/gradle/3.0.0/gradle-3.0.0.pom "时,会显示以下内容:

{
  "errors" : [ {
    "status" : 404,
    "message" : "Could not find resource"
  } ]
}
Run Code Online (Sandbox Code Playgroud)

根gradle文件包含以下代码:

dependencies {
  classpath 'com.android.tools.build:gradle:3.0.0'

  // NOTE: Do not place your application dependencies here; they belong
  // in the individual module build.gradle files
}

...

allprojects {
  repositories {
    jcenter()
    google()
  }
}
Run Code Online (Sandbox Code Playgroud)

文件gradle-wrapper.properties包含以下值:

#Fri Oct 27 10:09:16 CEST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
Run Code Online (Sandbox Code Playgroud)

如果我从Android Studio 3.0编译,相同的配置工作正常.但是,如果我尝试直接从命令行编译,我收到错误.

有人能帮助我吗?

command-line android gradle build.gradle

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

Android Studio 3.0无法合并dex

刚刚更新了android studio从2.3.3到3.0现在我有错误

Error:Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'. java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex
Run Code Online (Sandbox Code Playgroud)

这是我的gradle文件:

apply plugin: 'com.android.application'

android {
compileSdkVersion 25
buildToolsVersion '26.0.2'
defaultConfig {
    applicationId "d91.compassacademy"
    minSdkVersion 19
    targetSdkVersion 25
    versionCode 3
    versionName "1.0"

    testInstrumentationRunner 
"android.support.test.runner.AndroidJUnitRunner"
    vectorDrawables.useSupportLibrary = true
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
    debug {
        debuggable true
    }
}
}

repositories {
    mavenCentral()
    google()
}

dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:multidex:1.0.2'

compile('com.google.api-client:google-api-client-android:1.22.0') {
    exclude group: 'org.apache.httpcomponents'
}
compile …
Run Code Online (Sandbox Code Playgroud)

java android dex android-studio

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

无法执行aapt

请帮忙解决这个错误:

Failed to execute aapt
com.android.ide.common.process.ProcessException: Failed to execute aapt
at com.android.builder.core.AndroidBuilder.processResources(AndroidBuilder.java:796)
at com.android.build.gradle.tasks.ProcessAndroidResources.invokeAaptForSplit(ProcessAndroidResources.java:551)
at com.android.build.gradle.tasks.ProcessAndroidResources.doFullTaskAction(ProcessAndroidResources.java:285)
at com.android.build.gradle.internal.tasks.IncrementalTask.taskAction(IncrementalTask.java:109)
at sun.reflect.GeneratedMethodAccessor540.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$IncrementalTaskAction.doExecute(DefaultTaskClassInfoStore.java:173)
at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:134)
at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:121)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:122)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:197)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:111)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:92)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:63)
at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
Run Code Online (Sandbox Code Playgroud)

build.gradle

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

android-RuntimePermissions示例代码不起作用

https://github.com/googlesamples/android-RuntimePermissions/

克隆后我在Android Studio 2.3.3中导入了代码但是项目> Android中没有显示app文件夹,也没有其他Android特定选项如Android Monitor.Build Project无法正常工作.

我如何进口如下. 文件>新建>导入项目> android-RuntimePermissions> build.gradle然后单击确定

我已经将Kotlin插件添加到android studio,因为该项目有Kotlin模块.

java android intellij-idea android-studio

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

波纹效果有一个小的延迟,使其不可见

我用android:background="?attr/selectableItemBackground"一个LinearLayout(充当一个按钮),以获得连锁反应。button单击此按钮时,当前活动将在过渡期间向左滑动。问题是涟漪效应需要一些时间来触发,当它变得可见时,活动转换已经开始,这使得触摸反馈的使用完全无用。我不想在活动转换中添加延迟,那将是愚蠢的 IMO。

XML 文件如下所示:

<android.support.v7.widget.CardView>

    <LinearLayout
        android:clickable="true"
        android:background="?attr/selectableItemBackground"/>
</android.support.v7.widget.CardView>
Run Code Online (Sandbox Code Playgroud)

我怎样才能使涟漪效应变得有用和可见?

android android-layout material-design

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

API等级26:粘性背景服务

由于Android O不允许在不通知用户的情况下启动后台服务,因此我想选择使用Firebase Jobdispatcher在后台运行新线程的不同方法,请参阅:https://github.com/firebase/firebase -jobdispatcher,机器人

在构建API 26之前,我曾经在服务中启动一个新线程.这是一个STICKY服务,并将在用户从最近关闭应用程序时重新启动(当幻灯片从正在运行的应用程序中删除应用程序时).

在下面的API 26之前查看我的原始代码.

public class NotificationService extends Service {

@Override
public void onCreate() {
    // this will start the thread
    ApplicationLoader.postInitApplication();
}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    return START_STICKY;
}

@Override
public IBinder onBind(Intent intent) {
    return null;
}
Run Code Online (Sandbox Code Playgroud)

在API 26中,出现了一些限制:

https://developer.android.com/about/versions/oreo/android-8.0-changes.html#back-all

所以上面的方法不再起作用了.但即使用户从最近的应用程序关闭应用程序,我仍然希望我的线程能够运行.我发现了一种解决方法,但对我来说感觉非常糟糕.

FirebaseJobDispatcher dispatcher = new FirebaseJobDispatcher
                (new GooglePlayDriver(applicationContext));

Job notificationJob = dispatcher.newJobBuilder()
          .setService(NotificationService.class)
          .setTag("backgroundJob-" + System.currentTimeMillis())
          .setRecurring(true)
          .setLifetime(Lifetime.UNTIL_NEXT_BOOT)
          .setTrigger(Trigger.executionWindow(50, 60))
          .setReplaceCurrent(false)
          .build();
dispatcher.mustSchedule(notificationJob); …
Run Code Online (Sandbox Code Playgroud)

java multithreading android

5
推荐指数
0
解决办法
661
查看次数

Firestore id 命名约定

FireStore 中的文档 ID 是否有任何命名约定。我在集合中创建了一些文档,以“yyyy-mm-dd”中的日期作为 ID。当我尝试获取集合中的所有文档时,我的快照大小为零。当我将一个带有 test 的虚拟文档作为 id 放置时,我只得到了测试文档而不是其他文档。

我的文档结构

火库结构

firebase google-cloud-firestore

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