伙计们,
这是我的后台线程的简化代码:
public class MyThread extends Thread {
private Handler _handler;
public void run() {
Looper.prepare();
this._handler = new Handler();
Looper.loop();
}
public void DoSomething() {
if (!this.isAlive()) {
this.start();
}
this._handler.post(blah);
}
}
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是后台线程在调用post()时可能还没有创建处理程序对象.本质上,我需要一个等待循环来处理初始化处理程序对象.在Android下生成这个的可接受方法是什么?
预先感谢您的帮助.
问候,彼得
伙计们,
早些时候,我只有一个jar文件,并设置了清单,以便我可以简单地运行我的程序:
java -jar MyApp.jar
Run Code Online (Sandbox Code Playgroud)
现在,我已将我的功能分成两个jar文件 - MyCore.jar和MyApp.jar.
以下命令有效:
java -cp "*" com.mycompany.mypackage.App
Run Code Online (Sandbox Code Playgroud)
但我不能让以下工作
java -cp "*" -jar MyApp.jar
Run Code Online (Sandbox Code Playgroud)
我得到一个ClassNotFoundException.
我更喜欢使用"-jar"开关.有没有办法让它发挥作用?
预先感谢您的帮助.
问候,
彼得
我的Eclipse工作区中有三个项目:
我希望Android应用程序使用库项目作为依赖项.
我已经阅读了一些关于向Android应用程序添加库文件依赖关系的类似问题的回复,我试图遵循它们:
方法#1:
项目 - >属性 - > Java构建路径 - >项目 - >添加和添加库项目.
现在,我可以使用库项目中的类.编译器不会产生任何警告.但是,当我在模拟器上运行应用程序时,我得到一个类未定义的错误.
方法#2:
将生成的.jar文件复制到Android应用程序的"libs"目录中.
这有效.没有类未定义的异常.但是,我无法附加源代码,因此无法单步执行库代码.另外,每次源更改时,我都必须手动复制.jar文件.
方法#3:
转到库项目的"属性".您将在左侧窗格中看到"Android".选择它并标记"IsLibrary"字段.
但是,在我的情况下,左窗格中没有"Android"属性.我猜这个属性只有在它是一个真正的Android库项目时才会显示.
我被卡住了.如果有人能告诉我如何最好地处理这种情况,我将不胜感激.
以下是我希望实现的目标摘要:
伙计们,
在我的Android Java代码中,我有一个声明如下:
public class SurfacePanelNative extends SurfaceView implements SurfaceHolder.Callback {
...
private static native void native_render();
}
Run Code Online (Sandbox Code Playgroud)
在我的本机代码中,我将函数声明为:
void native_render(JNIEnv *env, jobject javaSurface) {
ANativeWindow* window = ANativeWindow_fromSurface(env, javaSurface);
...
}
Run Code Online (Sandbox Code Playgroud)
看一下网上的一些例子,似乎该函数应声明为:
void native_render(JNIEnv *env, jclass clazz) {
...
}
Run Code Online (Sandbox Code Playgroud)
我想知道哪个宣言是正确的.
我在想第一个是正确的.否则,我没有足够的信息来获取javaSurface.
如果有人能够对此有所了解,我将不胜感激.
预先感谢您的帮助.
问候,
彼得
在我的Windows平台上,我安装了最新版本的adt bundle(20140321)和ndk(r9d).安装尽可能干净.环境变量NDK_ROOT,PATH等都已正确定义.
我正在处理的应用程序有一些C++本机代码.代码在Eclipse之外以及Eclipse内构建都很好.
然而,问题在于编辑抱怨jni.h是一个未解决的问题.
项目 - >属性 - > C/C++常规 - > PathsAndSymbols显示包含目录,其中一个目录是C:\ adt \ndk\platforms\android-19\arch-arm\usr\include.我已经验证了jni.h存在于此目录中.
我已经检查了这个论坛上的所有其他消息,但找不到任何具体步骤.感谢您的指导.问候.
这是我播放铃声通知的代码片段:
Uri u = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
Ringtone r = RingtoneManager.getRingtone(MainActivity.this, u);
r.play();
Run Code Online (Sandbox Code Playgroud)
这似乎在大多数设备上都能正常工作。但是,在三星 S8 和三星 S9 等某些设备上,它不起作用。Logcat 显示:
I/Ringtone: Internal uri : content://settings/system/notification_sound
D/RingtoneManager: getActualDefaultRingtoneUri type :2
W/MediaPlayer: Couldn't open content://0@settings/system/notification_sound_cache:
java.io.FileNotFoundException: open failed: ENOENT (No such file or directory)
Run Code Online (Sandbox Code Playgroud)
请注意,相同的代码在三星 S7 上运行良好。
想知道是否有人有任何见解。
在将Android应用程序上传到Google Playstore时,我没有看到任何指定EULA文本的选项.我想知道是否有可能强制执行EULA,以便用户在安装发生之前必须同意它.
如果无法做到这一点,我需要以编程方式强制用户同意首次使用.
我按照这里的链接为openssl构建Android库:
http://wiki.openssl.org/index.php/Android
以下是我在Setenv-Android.sh中的设置:
_ANDROID_EABI="arm-linux-androideabi-4.6"
_ANDROID_ARCH=arch-arm
_ANDROID_API="android-16"
Run Code Online (Sandbox Code Playgroud)
下一步是运行以下命令:
$ . ./Setenv-Andrhoid.sh
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误:
Error: FIPS_SIG does not specify incore module. Please edit this script.
Run Code Online (Sandbox Code Playgroud)
没有提到如何在wiki中配置FIPS_SIG.看起来该脚本正在寻找名为"incore"的文件或目录.我搜索了我的$ ANDROID_NDK_ROOT.但是,我没有任何"incore"文件.
我需要运行的下一个命令如下:
$ ./config shared -no-ssl2 -no-ssl3 -no-comp -no-hw -no-engine \
--openssldir=/usr/local/ssl/$ANDROID_API
Run Code Online (Sandbox Code Playgroud)
在这里,openssldir指向绝对/usr/...目录?我希望最终的头文件和lib文件最终在$ANDROID_NDK_ROOT/platform/android-16/arch-arm目录中.
环境:Ubuntu 18.04下的ASP.NET Core 2.1
默认情况下,新创建的 asp.net 核心应用程序运行在http://localhost:5000并自动重定向到https://localhost:5001
由于我打算在 nginx 下运行我的应用程序(并使用 nginx 的 SSL 功能),我想在没有 https 的情况下在特定端口(例如 6000)上运行我发布的应用程序。
Post ASP.NET Core 2.1 + Kestrel (How to disable HTTPS)解释说必须简单地使用“--urls”参数来实现这一点。
这是我尝试过的:
$ dotnet publish --configuration Release
$ dotnet bin/Release/netcoreapp2.1/MyApp.dll
Run Code Online (Sandbox Code Playgroud)
该应用程序现在开始侦听http://localhost:5000和https://localhost:5001。当我浏览到http://localhost:5000 时,它会自动重定向到https://localhost:5001。到现在为止还挺好。
现在,我尝试在端口 6000 上运行:
$ dotnet bin/Release/netcoreapp2.1/MyApp.dll
--urls="http://localhost:6000"
Run Code Online (Sandbox Code Playgroud)
从终端窗口中的消息来看,该应用程序似乎开始在http://localhost:6000 上侦听。但是,浏览到此 url 会导致“无法访问此站点”错误。
我什至试过:
$ dotnet bin/Release/netcoreapp2.1/MyApp.dll
--urls="http://localhost:6000,https://localhost:6001"
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我收到一条错误消息:“只能使用 IApplicationBuilder.UsePathBase() 配置路径库”。
有人可以告诉我如何在指定端口简单地运行应用程序吗?我希望我不需要硬编码端口号。
这是 Azure TFS 报告的我的 git url:
https://mycompany@dev.azure.com/mycompany/myproject/_git/myproject
Run Code Online (Sandbox Code Playgroud)
这是我的克隆命令
git clone https://myusername:mypass@mycompany@dev.azure.com/mycompany/myproject/_git/myproject
Run Code Online (Sandbox Code Playgroud)
但是,我无法访问存储库。错误是:
Could not resolve host: mycompany@dev.azure.com
Run Code Online (Sandbox Code Playgroud)
有人可以建议如何克服这个问题吗?问候。
android ×6
android-ndk ×3
eclipse ×2
java ×2
asp.net-core ×1
azure-devops ×1
git ×1
google-play ×1
openssl ×1
tfs ×1