由于某些未知原因,Gradle拒绝下载我放在gradle.build文件中的所有依赖项.我试图获得'me.dm7.barcodescanner:zbar:1.7'的依赖性,但每次我尝试同步我的gradle它只会给我以下错误:
Error:(6, 13) Failed to resolve: me.dm7.barcodescanner:zbar:1.7
Run Code Online (Sandbox Code Playgroud)
它不仅仅是zbar库,它的每个库都不是com.android库.我不是处于离线模式,所以也不可能.我的.build文件中有什么问题吗?
apply plugin: 'com.android.application'
dependencies {
compile fileTree(include: '*.jar', dir: 'libs')
compile project(':MetaioSDK')
compile 'com.android.support:support-v4:22.0.0'
compile 'me.dm7.barcodescanner:zbar:1.7'
}
android {
compileSdkVersion 19
buildToolsVersion "21.1.0"
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['../../templatesContent_crossplatform']
}
// Move the tests to tests/java, tests/res, etc...
instrumentTest.setRoot('tests')
// Move the build types to build-types/<type>
// For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
// This …Run Code Online (Sandbox Code Playgroud) 我正在尝试为我的Android应用程序创建一些简单的测试,但是我遇到了让测试运行的问题.我在尝试运行测试时不断收到NoClassDefFound错误,但我似乎无法弄清楚它的原因是什么.如果我能看到一双新鲜的眼睛,我会很感激.
编辑:这是结构图:

这是我一直得到的错误:
junit.framework.AssertionFailedError: Exception in constructor: testScanResultNotNull (java.lang.NoClassDefFoundError: nl.hanze.myhealth.ScanResultActivity
at nl.hanze.myhealth.CameraTest.<init>(CameraTest.java:14)
at java.lang.reflect.Constructor.constructNative(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
at junit.runner.BaseTestRunner.getTest(BaseTestRunner.java:118)
at android.test.AndroidTestRunner.getTest(AndroidTestRunner.java:149)
at android.test.AndroidTestRunner.setTestClassName(AndroidTestRunner.java:57)
at android.test.suitebuilder.TestSuiteBuilder.addTestClassByName(TestSuiteBuilder.java:80)
at android.test.InstrumentationTestRunner.parseTestClass(InstrumentationTestRunner.java:443)
at android.test.InstrumentationTestRunner.parseTestClasses(InstrumentationTestRunner.java:424)
at android.test.InstrumentationTestRunner.onCreate(InstrumentationTestRunner.java:370)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4435)
at android.app.ActivityThread.access$1300(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1316)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:191)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:176)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:554)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1701)
Run Code Online (Sandbox Code Playgroud)
CameraTest
package nl.hanze.myhealth;
import android.test.ActivityInstrumentationTestCase2;
import android.test.suitebuilder.annotation.SmallTest;
public class CameraTest extends ActivityInstrumentationTestCase2<ScanResultActivity> {
ScanResultActivity mActivity;
public CameraTest(){
super(ScanResultActivity.class); …Run Code Online (Sandbox Code Playgroud) 我正在尝试让WKWebView在中显示本地下载的图像WKWebView。Web视图通常显示HTML,该HTML可远程检索。HTML的内容有时可以包含指向图像的远程链接。我的应用程序解析HTML并查找这些HTML标记,下载它所引用的文件,然后将远程链接替换为本地链接。
通常来说,这不是很困难,但是不会显示图像,大概是由于图像和Webview的本地HTML文件位于两个单独的目录(分别是文档目录和App Bundle目录)中。我见过有人建议将图像的下载目标移到HTML文件所在的目录,但这对我来说不是一个选择,因为我不想开始将用户下载的文件与本地资产混淆。
我最好的做法是什么?
更新:
在进行了大量调试后,我找出了通知未更新的原因:setProgress(0, 0, false)下载完成后调用。出于某种原因,当此方法在之前被调用时notify(),即将到来的更新实际上并没有通过。添加 NotificationChannel 不会做任何事情。
我目前的解决方法是调用,setProgress(100, 100, false)以便用户可以告诉下载已完成,随后会得到更新。
原问题:
我有一个自定义文件下载实用程序,可以在下载文件时创建通知。此通知会随着下载的进行而更新。但是,我在 API 级别高于 19 时得到了一些奇怪的结果。下载完成后,NotificationManager 不会更新通知以通知用户这一点。奇怪的是,只要下载进行,通知就会更新。此外,当我激活调试器时,通知会在下载完成时更新。这让我相信这里正在发生某种竞争条件,但我似乎无法真正找出在哪里或如何。
我的 FileDownloader 类:
public static void startGetRequestDownload(final Context context,
String fileUrl,
@Nullable String fileName,
@Nullable Header[] headers,
@Nullable RequestParams requestParams,
final boolean showProgressNotification){
final int notificationID = 0;
final NotificationManager mNotifyManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
if(mNotifyManager == null) {
Log.e(TAG, "Failed to get NotificationManager service");
return;
}
final NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context);
String notificationTitle = context.getString(R.string.default_filename);
if(fileName != …Run Code Online (Sandbox Code Playgroud) 我正在尝试返回到以前的视图控制器,但我正在遇到的问题(据我所知)不应该发生.
我正在尝试做的简短描述:我有4个视图控制器:A,B,C和D.基本的UI流程是A - > B - > C - > D.在C完成工作后,我想要返回B.
我的代码:
let viewControllerArray = self.navigationController?.viewControllers
for(var i=0;i<viewControllerArray?.count;i++){
if(viewControllerArray![i].isKindOfClass(InventoryListViewController)){
self.navigationController?.popToViewController(viewControllerArray![i], animated: true)
}
}
Run Code Online (Sandbox Code Playgroud)
如果B仍然存在于navigationcontroller的堆栈中,这一切都可以正常工作.如果B已从堆栈中删除(由于与内存相关的原因),它会让我尝试弹出一个不存在错误的视图控制器(显然).我很困惑的是,如果B不再存在于堆栈中,那么If语句是否应该阻止调用popToViewController方法?
我正在尝试编写一个可以通过切换字符对来解码消息的函数.
假设我message hello!在编码时变成了ehll!o.是否有一个现有的功能Oracle,让我replace characters在指定的位置与我选择的其他角色?
我正试图模仿iOS上的日历应用程序的设计,现在我已经遇到了几个小时的同一个问题.我试图以两种不同的方式显示视图控制器,具体取决于应用程序运行的设备.如果用户在iPhone上,则使用push segue显示视图控制器.这很好用.如果用户在iPad上,则视图控制器应显示为弹出窗口.这也有效,除了我只是在显示为弹出窗口时似乎无法显示导航栏.
这是一张描绘我想要它的样子的图像:
我正在尝试一个小程序来演示同步,但无论出于何种原因,它都没有达到我的期望.关键是要生成1000个线程,并将它们全部加1到静态Integer对象"sum".输出应该是1000但我得到不同的输出.这就像addSum()方法根本没有同步.我试过延迟println,认为它打印得太快但是这不是问题.我在这里错过了什么?
public class sumsync implements Runnable {
public static Integer sum = new Integer(0);
public sumsync(){
}
private synchronized void addSum(int i){
sum += i;
}
@Override
public void run() {
addSum(1);
}
}
Run Code Online (Sandbox Code Playgroud)
主要课程:
public class sumsyncinit {
private static final int max_threads = 1000;
public static void main(String[] args) {
sumsync task = new sumsync();
Thread thread;
for(int i=0; i<max_threads;i++){
thread = new Thread(task);
thread.start();
}
System.out.println(sumsync.sum);
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个演示信号量使用的小程序。我创建了 2 个线程,运行 Farmer 的两个实例:一个以字符串“north”作为参数,另一个以“south”为参数。它们似乎同时完成了 1 个线程而不是 2 个线程完成(如输出所示:
农民过桥,向北
农民过桥,向南
农民过桥,现在向北
农民过桥,现在向南
谁能告诉我我在这里做错了什么?
import java.util.concurrent.Semaphore;
public class Farmer implements Runnable
{
private String heading;
private final Semaphore bridge = new Semaphore(1);
public Farmer(String heading)
{
this.heading = heading;
}
public void run()
{
if (heading == "north")
{
try
{
//Check if the bridge is empty
bridge.acquire();
System.out.println("Farmer going over the bridge, heading north");
Thread.sleep(1000);
System.out.println("Farmer has crossed the bridge and is now heading north");
bridge.release();
}
catch (InterruptedException …Run Code Online (Sandbox Code Playgroud)