有没有办法删除Android Studio中的模块?当我右键单击模块时,我找不到删除选项,是否在其他地方?
有谁知道如何将代码片段添加到android工作室?我没有找到菜单条目或类似的东西.
我也知道是否可以更改现有的片段?
我想将我的代码集中在Android Studio的/ Intellij编辑器中,就像在Distraction Free模式下完成一样.现在如果它始终在编辑器的左侧对齐,但我想将它放在窗口的中心.我在设置中找不到任何选项.这可以在不进入无牵引模式的情况下实现吗?
我有一个包含 html 的字符串,如何在 Jetpack 撰写文本中显示它?
在 TextView 中,我会使用 Spanned 并执行以下操作:
TextView.setText(Html.fromHtml("<p>something", HtmlCompat.FROM_HTML_MODE_LEGACY)
Run Code Online (Sandbox Code Playgroud)
如何使用 Jetpack compose 中的文本执行此操作?
android android-jetpack-compose android-jetpack-compose-text
我在一个使用Robolectric的地方进行了测试,该例子在Android Studio中成功,但是在命令行上却没有。
我使用Robolectric 4.2,并且测试涉及一个密码,为此测试我对此进行了部分模拟。
//How the cipher is created
val mockCipher = object : Cipher(MockCipherSpi(), null, null) {}
Run Code Online (Sandbox Code Playgroud)
MockCipher基本上只返回未加密的输入:
class MockCipherSpi : CipherSpi() {
...
private val algorithmParametersSpi: AlgorithmParametersSpi? = object : AlgorithmParametersSpi() {
...
override fun <T : AlgorithmParameterSpec?> engineGetParameterSpec(paramSpec: Class<T>?): T {
return IvParameterSpec(byteArrayOf()) as T
}
}
...
override fun engineGetParameters(): AlgorithmParameters {
return object : AlgorithmParameters(algorithmParametersSpi, null, null) {
init {
init(byteArrayOf())
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的测试失败的原因是,当我尝试从密码中获取IV时,我得到了一个空指针异常:
cipher.parameters.getParameterSpec(IvParameterSpec::class.java).iv
Run Code Online (Sandbox Code Playgroud)
这对于Android Studio来说非常完美,我什至可以对其进行调试,但是从命令行运行它会./gradlew test失败。
java.lang.NullPointerException
at javax.crypto.Cipher.<init>(Cipher.java:268) …Run Code Online (Sandbox Code Playgroud) 我继承了一个使用appcompat-v7:20.0.0
的项目我无法构建项目,因为似乎gradle在同步/构建时不包含appcompat库.
我在build.gradle中的依赖项:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:20.0.0'
compile 'com.nineoldandroids:library:2.4.0'
compile 'com.google.android.gms:play-services:+'
}
Run Code Online (Sandbox Code Playgroud)
此外没有播放服务进入项目,但九个旧的机器人(我尝试包括不同的库,似乎从jcenter下载的所有东西)正如你在下面的截图中看到的:
gradle插件是1.0.0,并且在同步期间没有问题.
这类问题是否有任何已知的解决方案?
编辑1:
Android支持存储库
Android支持库
Google Play服务
全部安装完毕.但它也适用于新创建的项目.
编辑2:
该./gradlew build输出:
Caused by: org.gradle.internal.UncheckedException: com.android.ide.common.internal.LoggedErrorException: Failed to run command:
/Users/stephan/Library/Android/sdk/build-tools/20.0.0/aapt package -f --no-crunch -I /Users/stephan/Library/Android/sdk/platforms/android-21/android.jar -M /Users/project-path/build/intermediates/manifests/full/flavor/beta/AndroidManifest.xml -S /Users/project-path/build/intermediates/res/flavor/beta -A /Users/project-path/build/intermediates/assets/flavor/beta -m -J /Users/project-path/build/generated/source/r/flavor/beta -F /Users/project-path/build/intermediates/res/resources-flavor-beta.ap_ --debug-mode --custom-package de.my.project -0 apk --output-text-symbols /Users/project-path/build/intermediates/symbols/flavor/beta
Error Code:
1
Output:
/Users/project-path/build/intermediates/res/flavor/beta/values/values.xml:2127: error: Error retrieving parent for item: No resource found that matches the …Run Code Online (Sandbox Code Playgroud) android android-appcompat gradle build.gradle android-gradle-plugin
我正在尝试连接到谷歌API.
这在我的终端工作正常,我正在做:
curl https://www.googleapis.com/tasks/v1/users/@me/lists --header "Authorization: Bearer myAccessCode".
这工作正常,但现在我想在内部交流程序.
为此,我有:
CURL *curl;
char *header = "Authorization: Bearer myAccessCode";
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, header);
curl = curl_easy_init();
char *response = NULL;
curl_easy_setopt(curl, CURLOPT_URL, "https://www.googleapis.com/tasks/v1/users/@me/lists");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_HTTPGET, 1);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, httpsCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
curl_easy_perform(curl);
curl_easy_cleanup(curl);
Run Code Online (Sandbox Code Playgroud)
但在这里,我只是收到一条需要登录的消息.我不知道我做错了什么,是否有人看到我的失败?
在Android BiometricPrompt中,提示已替换了不推荐使用的FingerprintManager。FingerPrintManager具有两个功能hasEnrolledFingerprints(),isHardwareDetected()用于检查设备是否支持指纹以及用户是否注册了任何指纹认证。
借助新的BiometricPrompt,似乎没有任何功能可以在不尝试提示BiometricPrompt的情况下进行检查。有一个BiometricPrompt.AuthenticationCallback.onAuthenticationError(带错误代码的,称为错误代码,指示设备是否支持生物特征识别以及用户是否注册了生物特征认证。
因此,只有在尝试从用户进行身份验证时,我才能获取此信息。有没有一种方法可以在不尝试提示身份验证的情况下进行检查,以检查设备是否支持生物识别并且用户已注册生物识别?
我正在编写一个C程序,我想在运行Linux的桌面上以及Android设备上执行.
我必须制作一些桌面特定的东西和一些Android特定的东西.
我的问题是,有没有办法在C中获取操作系统版本,所以如果程序在桌面或Android设备上执行,我可以处理?
我创建了一个函数,它返回Observable<String>带有文件名的函数,但是我在订阅中没有得到任何我调用此方法的事件.也没有onError或onComplete的调用
请参阅我的代码:
fun getAllFiles(): Observable<String> {
val allFiles = File("/Users/stephan/Projects/Playground/kotlinfiles/")
.listFiles { file -> !file.isDirectory() }
return observable { subscriber ->
allFiles.toObservable()
.map { f -> "${f.name}" }
.doOnNext { println("Found file $it") }
.subscribe { subscriber}
}
}
fun test() {
getAllFiles()
.doOnNext { println("File name$it") }
.subscribe(
{n -> println("File: $n")},
{e -> println("Damn: $e")},
{println("Completed")})
}
Run Code Online (Sandbox Code Playgroud)
虽然在getAllFiles()函数中调用了所有内容,但我还缺少什么?
我想在我的应用程序打开系统终端应用程序后执行命令。我使用以下命令打开终端应用程序:
let url = NSURL(fileURLWithPath: "/System/Applications/Utilities/Terminal.app", isDirectory: true) as URL
let configuration = NSWorkspace.OpenConfiguration()
NSWorkspace.shared.openApplication(at: url, configuration: configuration, completionHandler: { app, error in
//app.executeMyCommand("echo hello")
})
Run Code Online (Sandbox Code Playgroud)
打开后我想执行命令“echo hello”,如completionHandler中所示。如何才能实现这一点呢?
我创建了一个带有子节点的GridView,每个子节点都有一个GestureDetector和一个onTap方法集.但只有在创建视图时才调用onTap事件,而不是在项目被点击时调用.我在这做错了什么?
class MyGridView extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new Column(
children: <Widget>[
new Expanded(
child: new GridView.count(
crossAxisCount: 2,
children: [
new GridItem(0),
new GridItem(1)
]
)
)
]
);
}
}
class GridItem extends StatelessWidget {
final int code;
GridItem(this.code);
@override
Widget build(BuildContext context) {
return new GestureDetector(
onTap: print(code),
child: new Container(
height: 48.0,
child: new Text('$code')
)
);
}
}
Run Code Online (Sandbox Code Playgroud) android ×7
kotlin ×3
c ×2
gradle ×2
android-jetpack-compose-text ×1
android-ndk ×1
build.gradle ×1
curl ×1
dart ×1
flutter ×1
ide ×1
junit ×1
libcurl ×1
macos ×1
robolectric ×1
rx-kotlin ×1
swift ×1