我想用来Android-x86测试和调试我的App.I成功之前尝试过其他版本的Android-x86,但是关于android-x86-4.2有一个错误.所以我在这里问我的问题,因为它可能会发生在其他人身上:
我安装oracle VM virtualBox在Win7 32-Bit上,然后我android-x86-4.2-20121225.iso从Android-x86下载- 将Android移植到x86.我从iso上安装了VirtualBox上的Android x86-4.2并为它创建了假SD卡,我尝试运行它,但是当我开始我在控制台中看到这些行:
检测Android-x86 ...在/ dev/sda1中找到
ANDROID root @ x86:/#
没有别的,即使我等了20多分钟也没有发生任何事情!我尝试了一些但结果是一样的.我怎么能解决这个问题?
更新:直到出现以下问题Android Studio 3.4.2。
我使用Android Studio 3.3并创建了一个scratch文件(File > new > Scratch File > Java)。IDE scratch.java在~/.AndroidStudio3.3/config/scratches以下位置创建:
class Scratch {
public static void main(String[] args) {
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我运行该暂存文件时(通过按类名或main方法附近的绿色按钮),出现此错误:
Error: Could not find or load main class Scratch
Run Code Online (Sandbox Code Playgroud)
我认为IDE无法制造Scratch.class,因此Java无法找到它。有没有办法解决此问题并从IDE运行暂存文件(不使用Terminal)?
我知道我无法将参数传递给android中的Activity构造函数,但我想了解原因.
我试图做的是:
CalorieSelectorActivity csa = new CalorieSelectorActivity(userName);
Intent i = new Intent(thisContext, csa.getClass());
startActivity(i);
Run Code Online (Sandbox Code Playgroud)
我已经将类定义如下:
public class CalorieSelectorActivity extends Activity {
public CalorieSelectorActivity(String name) {
super();
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.calorieselector);
}
}
Run Code Online (Sandbox Code Playgroud)
当我从构造函数中删除参数时,它完美地工作.我最后使用intent.putExtra做了它,但很想知道为什么不能通过将参数传递给构造函数来完成它?
LogCat:
02-04 06:46:52.257: W/dalvikvm(800): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
02-04 06:46:52.277: E/AndroidRuntime(800): FATAL EXCEPTION: main
02-04 06:46:52.277: E/AndroidRuntime(800): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.manarbushnaq.calorietracker/com.manarbushnaq.calorietracker.CalorieSelectorActivity}: java.lang.InstantiationException: com.manarbushnaq.calorietracker.CalorieSelectorActivity
02-04 06:46:52.277: E/AndroidRuntime(800): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585)
02-04 06:46:52.277: E/AndroidRuntime(800): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
02-04 06:46:52.277: E/AndroidRuntime(800): …Run Code Online (Sandbox Code Playgroud) 我正处于学习Android的早期阶段.谁能告诉我如何使用用户在文本框中写的文字?
我正在尝试使用getText()方法,但发现它令人困惑.
提前致谢.
我对OpenCV的Android相机示例代码感到困惑.他们创建了一个自定义类,它SurfaceHolder.Callback在方法中实现并放入以下行surfaceChanged:
mCamera.setPreviewDisplay(null);
Run Code Online (Sandbox Code Playgroud)
Android文档setPreviewDisplay解释如下:
必须在startPreview()之前调用此方法.一个例外是,如果在调用startPreview()之前未设置预览表面(或设置为null),则可以使用非null参数调用此方法一次以设置预览表面.(这允许相机设置和曲面创建并行发生,节省时间.)预览曲面在预览运行时可能不会改变.
不同寻常的是,OpenCV的代码永远不会setPreviewDisplay使用非null的SurfaceHolder调用.它工作正常,但改变图像的旋转使用setDisplayOrientation不起作用.这条线似乎也没有做任何事情,因为没有它我会得到相同的结果.
如果我setPreviewDisplay使用提供的SurfaceHolder来surfaceChanged代替null,则图像会旋转,但不包括图像处理的结果.我以后也会IllegalArgumentException打电话给我lockCanvas.
这是怎么回事?
以下是其代码中(可能)最相关的部分,略微简化并使用内联方法.这是完整版.
类定义
public abstract class SampleViewBase extends SurfaceView
implements SurfaceHolder.Callback, Runnable {
Run Code Online (Sandbox Code Playgroud)
打开相机时
mCamera.setPreviewCallbackWithBuffer(new PreviewCallback() {
public void onPreviewFrame(byte[] data, Camera camera) {
synchronized (SampleViewBase.this) {
System.arraycopy(data, 0, mFrame, 0, data.length);
SampleViewBase.this.notify();
}
camera.addCallbackBuffer(mBuffer);
}
});
Run Code Online (Sandbox Code Playgroud)
当表面发生变化时
/* Now allocate the buffer */
mBuffer = new byte[size];
/* The buffer where …Run Code Online (Sandbox Code Playgroud) 我只能在数据库名称包含like(new database(myid)等时才能读取文件.我给出了以下示例代码:
dumpCommand = "C:/Program Files/MySQL/MySQL Server 5.0/bin/mysqldump -h"+hostName+user+databaseName;
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec(dumpCommand);
InputStream in = proc.getInputStream();
BufferedReader br=new BufferedReader(new InputStreamReader(in));
String line =null;
while((line=br.readLine())!=null)
{
//able to read line only when database name like abc,datastore etc...
System.out.println(line);
}
Run Code Online (Sandbox Code Playgroud)
假设我的数据库名称de mo意味着当我打印行时,我得到了像de only这样的数据库名称.数据库名称是否有空格?
我正在尝试创建一个优雅,分散注意力的文本编辑器.
我真正想要实现的功能之一是弹出简单的文本格式命令,如粗体,斜体,下划线,字体颜色和字体.
为了给你一个想法,这里是iOS中弹出窗口的图片(显然,这只是想法.我想为弹出窗口创建一个自定义设计):

我有几个问题:
1)是否存在文本选择监听器或某些等价物?
2)我是否需要覆盖默认的android动作进行文本选择?
3)如何显示/创建此弹出窗口?(模糊的问题,我知道......)
我刚刚开始使用Java和Android开发,但我已经创建了一些应用程序并且已经掌握了它.
我用windows 7.我想p4merge用作Git diff/merge工具.我按照这篇文章和这个来设置和配置p4merge:
git config --global merge.tool p4merge
git config --global mergetool.p4merge.path "C:/Program Files/Perforce/p4merge.exe"
git config --global diff.tool p4merge
git config --global difftool.p4merge.path "C:/Program Files/Perforce/p4merge.exe"
Run Code Online (Sandbox Code Playgroud)
这些行来自git config:
merge.tool=p4merge
mergetool.p4merge.path=C:/Program Files/Perforce/p4merge.exe
diff.tool=p4merge
difftool.p4merge.path=C:/Program Files/Perforce/p4merge.exe
mergetool.keeptemporaries=false
mergetool.prompt=false
Run Code Online (Sandbox Code Playgroud)
现在git mergetool命令工作正常.但是当我使用git difftool命令时git bash,我希望p4merge但是我看到了diff的内部实现git bash.
我试过Smooth Git + P4merge,但它对我不起作用,我也尝试按照外部合并和差异工具中的描述进行操作,但我不明白.
注意:
当冲突类型为removed file conflict,git difftool命令打开p4merge …
文档说:
活动的可见生命周期发生在对 的调用和对
onStart()的相应调用之间onStop()。
同样在这个你可以看到:
该
onStart()调用使用户可以看到该活动...
所以我认为 Activity 的 UI 在从onStart().
最近为了测试,我把一个无限循环放入onResume()并猜测Activity的UI必须是可见的。但是启动Activity的结果是一个没有任何UI的白色窗口。
所以看起来 Activity 的 UI 在从 返回onResume()而不是从 返回后是可见的onStart()。这是真的?如果是,为什么文档会说这种误导性的陈述?
编辑:
你可能会像 Công H?i那样认为:
我认为文档中提到的窗口可见不可见。
但我不认为“能见度”就是上面提到的“白窗”;因为如果你在 中放置一个无限循环onCreate(),再次启动 Activity 的结果将是一个白色窗口,而正如文档所说,onCreate()它不在 Activity 的“可见生命周期”中。所以“活动的可见性”必须意味着不同于“白色窗口”的另一件事。
编辑2
除了官方文档,许多教程都说 Activity 将通过调用可见并通过调用onStart()进行交互onResume()。他们都说不正确的话没有测试吗?
android onstart onresume activity-lifecycle android-activity
android ×7
java ×2
android-x86 ×1
bash ×1
constructor ×1
git ×1
iso-image ×1
onresume ×1
onstart ×1
p4merge ×1
runtime.exec ×1
scratch-file ×1
virtualbox ×1
windows-7 ×1