小编Anu*_*bis的帖子

Gradle无法解决外部依赖性问题

由于某些未知原因,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 gradle zbar

11
推荐指数
1
解决办法
9618
查看次数

尝试在Android Studio上运行单元测试时出现NoClassDefFoundError

我正在尝试为我的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)

android unit-testing noclassdeffounderror

5
推荐指数
3
解决办法
6639
查看次数

将本地图像加载到WKWebView

我正在尝试让WKWebView在中显示本地下载的图像WKWebView。Web视图通常显示HTML,该HTML可远程检索。HTML的内容有时可以包含指向图像的远程链接。我的应用程序解析HTML并查找这些HTML标记,下载它所引用的文件,然后将远程链接替换为本地链接。

通常来说,这不是很困难,但是不会显示图像,大概是由于图像和Webview的本地HTML文件位于两个单独的目录(分别是文档目录和App Bundle目录)中。我见过有人建议将图像的下载目标移到HTML文件所在的目录,但这对我来说不是一个选择,因为我不想开始将用户下载的文件与本地资产混淆。

我最好的做法是什么?

ios swift wkwebview

5
推荐指数
1
解决办法
5490
查看次数

调用 setProgress(0, 0, true) 不会更新通知 &gt; API 19

更新:

在进行了大量调试后,我找出了通知未更新的原因: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)

android android-notifications

5
推荐指数
1
解决办法
959
查看次数

试图弹出到不存在的视图控制器

我正在尝试返回到以前的视图控制器,但我正在遇到的问题(据我所知)不应该发生.

我正在尝试做的简短描述:我有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方法?

uinavigationcontroller ios swift

4
推荐指数
1
解决办法
5448
查看次数

替换Oracle中字符串中特定位置的字符

我正在尝试编写一个可以通过切换字符对来解码消息的函数.

假设我message hello!在编码时变成了ehll!o.是否有一个现有的功能Oracle,让我replace characters在指定的位置与我选择的其他角色?

string oracle plsql replace substring

2
推荐指数
1
解决办法
6449
查看次数

在弹出窗口上显示导航栏

我正试图模仿iOS上的日历应用程序的设计,现在我已经遇到了几个小时的同一个问题.我试图以两种不同的方式显示视图控制器,具体取决于应用程序运行的设备.如果用户在iPhone上,则使用push segue显示视图控制器.这很好用.如果用户在iPad上,则视图控制器应显示为弹出窗口.这也有效,除了我只是在显示为弹出窗口时似乎无法显示导航栏.

这是一张描绘我想要它的样子的图像:

在此输入图像描述

uinavigationbar popover ipad ios swift

2
推荐指数
1
解决办法
1520
查看次数

Java同步无法正常工作

我正在尝试一个小程序来演示同步,但无论出于何种原因,它都没有达到我的期望.关键是要生成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)

java synchronization

1
推荐指数
1
解决办法
150
查看次数

信号量不起作用

我正在尝试创建一个演示信号量使用的小程序。我创建了 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)

java multithreading semaphore

0
推荐指数
1
解决办法
919
查看次数