我正在尝试使用AndroidDebugBridge将触摸事件发送到设备,以便我可以为UI测试做一些基本的自动化.我已经在LINK中进行了讨论.我可以使用sendevent模拟模拟器上的触摸,但无法在设备上执行相同的操作.
就像上面的链接一样,模拟器似乎每次触摸发出6个事件(xcoord,ycoord,2个用于按下,2个用于发布)并且很容易将这些信息用于sendevents,但是设备的触摸屏的getevent似乎产生太多的事件.
有人设法将ADB的触摸发送到设备吗?你能分享一下解决方案吗?
我试图将源文件中的几个文件复制到Gradle最终生成apk文件的目录中.构建似乎很好,但我似乎没有看到副本工作.我在我的模块build.gradle中添加了以下任务
task copySupportFiles(type: Copy){
from 'src/main/support'
into 'build/outputs/apk'
include '**/.dat'
include '**/.txt'
}
assembleDebug {}.doLast{
tasks.copySupportFiles.execute()
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个批处理(for win)和一个用于linux的shell脚本,以便在Android UI上自动执行键和触摸事件.在Windows批处理文件中,我正在为每个事件启动一个adb shell,例如
:again
adb shell am start -a android.intent.action.MAIN -n com.q.me.fui.activity/.InitActivity
sleep 15
adb shell sendevent /dev/input/event0 3 0 281
adb shell sendevent /dev/input/event0 3 1 70
adb shell sendevent /dev/input/event0 1 330 1
adb shell sendevent /dev/input/event0 0 0 0
adb shell sendevent /dev/input/event0 1 330 0
adb shell sendevent /dev/input/event0 0 0 0
adb shell sendevent /dev/input/event0 1 330 1
adb shell sendevent /dev/input/event0 0 0 0
adb shell sendevent /dev/input/event0 1 330 0
adb shell …Run Code Online (Sandbox Code Playgroud) 我正在使用Android Studio 2.2 Beta 3,我的测试项目使用CMake构建混合C++和Java应用程序.JNI接口由SWIG生成.这意味着我想在externalNativeBuild和JavaCompile gradle任务之前生成SWIG包装器; 即我的CMakeLists.txt指定SWIG生成的cpp包装器文件,我的java代码导入SWIG生成的java包装器文件.
为了确保SWIG运行并在任何任务之前生成必要的包装器文件,我在app/build.gradle文件中指定了以下内容
project.afterEvaluate {
preBuild.dependsOn("runSwig")
}
Run Code Online (Sandbox Code Playgroud)
当我使用命令从命令行运行时
./gradlew assembleDebug
Run Code Online (Sandbox Code Playgroud)
我没有遇到任何问题,正如预期的那样,我的任务"runSwig"在任何其他任务之前运行
:app:runSwig
:app:preBuild
:app:preDebugBuild
<blah blah more tasks>
:app:externalNativeBuildDebug
Run Code Online (Sandbox Code Playgroud)
但问题是当项目首次在Android Studio中打开时,看起来外部本机构建在runSwig之前被调用,我得到了错误
CMake Error at CMakeLists.txt:79 (add_library):
Cannot find source file:
../../../wrap.cxx
Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp
.hxx .in .txx
FAILURE: Build failed with an exception.
Run Code Online (Sandbox Code Playgroud)
在我使用命令行OR进行汇编之前,错误不会消失,从我的CMakeLists.txt中删除wrap.cxx文件,并在swig成功运行至少一次后重新添加它.
我是 Flutter 的初学者,我试图弄清楚当用户在自定义形状和/或多个堆叠的自定义形状上移动手指时,如何检测触摸进入、移动和退出。像下面这样
理想情况下,我希望在用户进入/退出每个自定义形状的像素边界时获得触摸事件,但我想让它至少与形状的 MBR 一起工作。下面是我拥有的代码。我究竟做错了什么?当触摸在形状内开始时,它似乎所做的就是打印移动。我也尝试过 GestureDetector,结果相似。
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.deepOrange,
),
home: MyHomePage(title: 'Flutter Demo'),
);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key key, this.title}) : super(key: key);
final String title;
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
return …Run Code Online (Sandbox Code Playgroud) 我使用 crashalytics 设置了一个 firebase 项目,我可以在仪表板上看到 Java 和 NDK 崩溃。我正在尝试按照https://firebase.google.com/docs/crashlytics/ndk-reports#upload_native_symbols上传符号。我还尝试关注https://medium.com/@aungkyawmyint_26195/setting-up-ndk-crashlytics-android-11ad775676f7等博客,但到目前为止尚未成功。
这是我的环境
Android Studio 3.5
Build #AI-191.8026.42.35.5791312, built on August 8, 2019
JRE: 1.8.0_202-release-1483-b49-5587405 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
macOS 10.14.6
implementation 'com.google.firebase:firebase-analytics:17.2.0'
implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'
implementation 'com.crashlytics.sdk.android:crashlytics-ndk:2.1.0'
Run Code Online (Sandbox Code Playgroud)
当我跑步时
./gradlew crashlyticsUploadSymbolsDebug --stacktrace
Run Code Online (Sandbox Code Playgroud)
在我的 app/build.gradle 中如下
crashlytics {
enableNdk true
androidNdkOut 'build/intermediates/cmake/debug/obj'
androidNdkLibsOut 'build/intermediates/cmake/release/obj'
manifestPath 'src/main/AndroidManifest.xml'
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误
> Task :app:externalNativeBuildDebug
Build native-lib_armeabi-v7a
ninja: no work to do.
Build native-lib_arm64-v8a
ninja: no work to do.
Build …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用本机代码构建一个Android库项目.根据http://tools.android.com/tech-docs/new-build-system/gradle-experimental下的"已知限制"部分, 支持混合库项目.但我似乎没有看到本机文件生成在库aar文件的libs文件夹下.
这是我的项目设置的样子
当我运行这个应用程序时,我得到一个UnsatisfiedLinkError,我预计,因为我看到没有原生的文件在aar文件中生成.
这就是我的库build.gradle文件的样子
apply plugin: 'com.android.model.library'
model {
android {
compileSdkVersion = 23
buildToolsVersion = "23.0.1"
}
android.ndk {
moduleName = "native"
cppFlags = ['-std=c++11']
stl = "gnustl_shared"
}
}
Run Code Online (Sandbox Code Playgroud)
这就是我的app模块的build.gradle的样子
apply plugin: 'com.android.model.application'
model {
android {
compileSdkVersion = 23
buildToolsVersion = "23.0.1"
}
}
dependencies {
compile project(':mylibrary')
}
Run Code Online (Sandbox Code Playgroud) android android-ndk android-library android-studio android-gradle-plugin
我正在尝试使用ndk-gdb来调试我的原生android项目.当我运行命令ndk-gdb时,我收到错误
Could not find gdb.setup under ./libs/
Run Code Online (Sandbox Code Playgroud)
说明
运行ndk-gdb --verbose生成
ndk-gdb --verbose
Android NDK安装路径:
/Users/hanantha/Documents/Dev/android-ndk-r10e
Run Code Online (Sandbox Code Playgroud)
使用默认的adb命令:
/Users/hanantha/Documents/Dev/android-sdk-macosx/platform-tools/adb
Run Code Online (Sandbox Code Playgroud)
发现ADB版本:Android Debug Bridge版本1.0.32
Revision eac51f2bb6a8-android
Run Code Online (Sandbox Code Playgroud)
使用ADB标志:
使用JDB命令:
/usr/bin/jdb
Run Code Online (Sandbox Code Playgroud)
使用自动检测的项目路径:.
找到包名称: com.example.SanAngeles
申请目标ABIs:arm64-v8a armeabi armeabi-v7a armeabi-v7a mips mips64 x86 x86_64
设备API级别:19
设备CPU ABI:x86
兼容设备ABI:
使用gdb setup init:
./libs/armeabi/gdb.setup
Run Code Online (Sandbox Code Playgroud)
使用工具链前缀:
/Users/hanantha/Documents/Dev/android-ndk-r10e/toolchains/x86-4.8/prebuilt/darwin-x86_64/bin/i686-linux-android-
Run Code Online (Sandbox Code Playgroud)
使用app out目录:./ obj/local/armeabi
找到可调试标志: true
错误:
Could not find gdb.setup under ./libs/
This usually means you modified your …Run Code Online (Sandbox Code Playgroud)android ×6
android-ndk ×3
adb ×2
c++ ×2
cmake ×2
automation ×1
batch-file ×1
build ×1
crashlytics ×1
debugging ×1
firebase ×1
flutter ×1
gradle ×1
ndk-gdb ×1
shell ×1
swig ×1
touchscreen ×1