我正在尝试将项目迁移到Gradle,但每次运行命令时都会引发异常
gradle build --stacktrace
Run Code Online (Sandbox Code Playgroud)
我正在使用Gradle 1.6.这是错误的堆栈跟踪:
:MyApp:compileDebug FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':MyApp:compileDebug'.
> Compilation failed; see the compiler error output for details.
* Try:
Run with --info or --debug option to get more log output.
* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':MyApp:compileDebug'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
at org.gradle.api.internal.changedetection.state.CacheLockReleasingTaskExecuter$1.run(CacheLockReleasingTaskExecuter.java:35)
at org.gradle.internal.Factories$1.create(Factories.java:22)
at org.gradle.cache.internal.DefaultCacheAccess.longRunningOperation(DefaultCacheAccess.java:179)
at org.gradle.cache.internal.DefaultCacheAccess.longRunningOperation(DefaultCacheAccess.java:232)
at org.gradle.cache.internal.DefaultPersistentDirectoryStore.longRunningOperation(DefaultPersistentDirectoryStore.java:142)
at org.gradle.api.internal.changedetection.state.DefaultTaskArtifactStateCacheAccess.longRunningOperation(DefaultTaskArtifactStateCacheAccess.java:83)
at org.gradle.api.internal.changedetection.state.CacheLockReleasingTaskExecuter.execute(CacheLockReleasingTaskExecuter.java:33)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:58)
at org.gradle.api.internal.tasks.execution.ContextualisingTaskExecuter.execute(ContextualisingTaskExecuter.java:34)
at …Run Code Online (Sandbox Code Playgroud) 我遇到了一个奇怪的问题.我有我的应用程序的双向同步代码在一个内部运行ScheduledThreadPoolExecutor.代码从服务器的响应中迭代大量对象,并将它们保存到本地数据库(带有GreenDAO的SQLite).
问题是,当这个线程正在处理对象列表时,UI会锁定几秒钟,并且我在logcat中得到多个跳过帧的警告.
02-16 02:34:34.539 5730-5730/com.myapp.android D/SyncService? Sync done.
02-16 02:34:34.552 5730-5730/com.myapp.android I/Choreographer? Skipped 123 frames! The application may be doing too much work on its main thread.
02-16 02:34:41.060 5730-5748/com.myapp.android I/art? Background sticky concurrent mark sweep GC freed 168341(7MB) AllocSpace objects, 1(81KB) LOS objects, 15% free, 39MB/46MB, paused 1.774ms total 108.998ms
02-16 02:34:42.515 5730-5748/com.myapp.android I/art? Background partial concurrent mark sweep GC freed 249676(9MB) AllocSpace objects, 34(3MB) LOS objects, 32% free, 33MB/49MB, paused 10.125ms total 118.693ms
02-16 02:34:45.361 5730-5748/com.myapp.android …Run Code Online (Sandbox Code Playgroud) 我正在尝试自动化从我的应用程序中提取数据库然后将更改后的版本推回到设备的过程,但它没有按预期工作.
按照Pilot_51对此主题的回答,Android ADB访问没有root的应用程序数据库,我能够提取手动运行命令的数据库.但是当我把它们放在.bat文件上时,每个执行的Unix命令都会返回一个"未找到"的错误.
这是我得到的错误:
run-as:exec因chmod 666 ./database/mydatabase.db而失败; 退出错误:没有这样的文件或目录
这是.bat脚本代码:
@echo off
:Ask
echo (A) Pull or (B) Push
set INPUT=
set /P INPUT=Input choice: %=%
If /I "%INPUT%"=="a" goto A
If /I "%INPUT%"=="b" goto B
echo Wrong choice & goto Ask
:A
adb shell "run-as com.example.myapp 'chmod 666 ./databases/mydatabase.db; exit'; exit"
adb pull /data/data/com.example.myapp/databases/mydatabase.db C:/
goto End
:B
adb push C:/mydatabase.db /data/data/com.example.myapp/databases/mydatabase.db
adb shell "run-as com.example.myapp 'chmod 660 ./databases/mydatabase.db; exit'; exit"
:End
pause
Run Code Online (Sandbox Code Playgroud)
如果我尝试仅使用"run-as com.example.myapp'ls'"运行adb …