小编cap*_*o11的帖子

FileProvider - IllegalArgumentException:找不到配置的root

我正试图用相机拍照,但我收到以下错误:

FATAL EXCEPTION: main
Process: com.example.marek.myapplication, PID: 6747
java.lang.IllegalArgumentException: Failed to find configured root that contains /storage/emulated/0/Android/data/com.example.marek.myapplication/files/Pictures/JPEG_20170228_175633_470124220.jpg
    at android.support.v4.content.FileProvider$SimplePathStrategy.getUriForFile(FileProvider.java:711)
    at android.support.v4.content.FileProvider.getUriForFile(FileProvider.java:400)
    at com.example.marek.myapplication.MainActivity.dispatchTakePictureIntent(MainActivity.java:56)
    at com.example.marek.myapplication.MainActivity.access$100(MainActivity.java:22)
    at com.example.marek.myapplication.MainActivity$1.onClick(MainActivity.java:35)
Run Code Online (Sandbox Code Playgroud)

AndroidManifest.xml中:

<provider
        android:name="android.support.v4.content.FileProvider"
        android:authorities="com.example.marek.myapplication.fileprovider"
        android:enabled="true"
        android:grantUriPermissions="true">
        <meta-data
            android:name="android.support.FILE_PROVIDER_PATHS"
            android:resource="@xml/file_paths" />
</provider>
Run Code Online (Sandbox Code Playgroud)

Java的:

Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    // Ensure that there's a camera activity to handle the intent
    if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
        // Create the File where the photo should go
        File photoFile = null;
        try {
            photoFile = createImageFile();
        } catch …
Run Code Online (Sandbox Code Playgroud)

android android-fileprovider

173
推荐指数
14
解决办法
10万
查看次数


由于'android.content.res.Resources $ NotFoundException'导致检测运行失败

我尝试在Android Studio 1.5.1中使用espresso 2.2.1运行测试.当我运行LoginActivityTest时,我收到此错误:当LoginActivity调用MyService.java并且MyService需要整数资源(即R.integer.number_of_days)时,会导致"android.content.res.Resources $ NotFoundException".此资源在gradle(版本1.5.0)模块的R.integer.xml文件中定义.

项目结构:

RootFolder/ ?----projectA/ ? ?----build.gradle ? ?----settings.gradle ? ?----src/androidTest/java/.../LoginActivityTest ? ?----src/main/java/.../LoginActivity ? ?----Module/ ?----krill/ ? ?----build.gradle ? ?----settings.gradle ? ?----src/main/ | ?----java/service/MyService.java | ?----res/value/integers.xml ? ?----otherModule/ ?----build.gradle

我的考试班:

@RunWith(AndroidJUnit4.class)
@LargeTest
public class LoginActivityTest extends ActivityInstrumentationTestCase2<LoginActivity >{

@Rule
public ActivityTestRule<LoginActivity> mActivityRule = new ActivityTestRule(LoginActivity.class);

public LoginActivityTest() {
    super(LoginActivity.class);
}

@Test
public void testConfigDialog() {
    onView(withId(R.layout.login_custom_view));

    onView(withId(R.id.id_username)).perform(clearText());
    onView(withId(R.id.id_password)).perform(clearText());
}
}
Run Code Online (Sandbox Code Playgroud)

错误堆栈跟踪:

Running tests
Test running started
android.content.res.Resources$NotFoundException: Resource ID #0x7f090004
at android.content.res.Resources.getValue(Resources.java:1233)
at android.content.res.Resources.getInteger(Resources.java:989)
at it.company.android.lib.auth.infrastructure.AuthenticatorPreferences.<init>(MyService.java:36) …
Run Code Online (Sandbox Code Playgroud)

android gradle android-studio android-espresso android-instrumentation

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

gradle ASCII:评估项目':app'时发生问题

星期五gradle正常工作,今天我收到了此gradle错误:

* Where:
Build file '...\git\project\app\build.gradle' line: 1
* What went wrong:
A problem occurred evaluating project ':app'.
> ASCII

CONFIGURE FAILED in 4s
ASCII
Run Code Online (Sandbox Code Playgroud)

错误gradle --debug

...
10:29:50.018 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
10:29:50.018 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] FAILURE: Build failed with an exception.
10:29:50.018 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
10:29:50.018 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * Where:
10:29:50.019 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] Build file '...\git\project\project\build.gradle' line: 1
10:29:50.019 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter]
10:29:50.019 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * What went wrong:
10:29:50.019 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] A problem occurred evaluating project ':app'.
10:29:50.019 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] …
Run Code Online (Sandbox Code Playgroud)

android android-studio android-gradle-plugin

6
推荐指数
3
解决办法
9162
查看次数

詹金斯java.lang.NoClassDefFoundError:com / trilead / ssh2 / crypto / Base64

今天,我将Jenkins版本从2.151更新为2.152(在我的ec2实例中),我遇到的第一个错误是 java.lang.NoClassDefFoundError: com/trilead/ssh2/crypto/Base64

我收到此错误:

屏幕截图 在此处输入图片说明 这是日志:

org.apache.commons.jelly.JellyTagException: jar:file:/var/cache/jenkins/war/WEB-INF/lib/jenkins-core-2.152.jar!/lib/layout/hasPermission.jelly:35:20: <d:invokeBody> com/trilead/ssh2/crypto/Base64
  at org.apache.commons.jelly.impl.TagScript.handleException(TagScript.java:745)
  at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:289)
  at org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98)
  at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
  at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
  at org.kohsuke.stapler.jelly.CallTagLibScript.run(CallTagLibScript.java:120)
  at org.apache.commons.jelly.tags.core.CoreTagLibrary$2.run(CoreTagLibrary.java:105)
  at org.kohsuke.stapler.jelly.JellyViewScript.run(JellyViewScript.java:95)
  at org.kohsuke.stapler.jelly.IncludeTag.doTag(IncludeTag.java:147)
  at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
  at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:161)
  at org.apache.commons.jelly.tags.core.ForEachTag.doTag(ForEachTag.java:150)
  at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
  at org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98)
  at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
  at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
  at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:95)
  at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
  at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
  at org.kohsuke.stapler.jelly.ReallyStaticTagLibrary$1.run(ReallyStaticTagLibrary.java:99)
  at org.apache.commons.jelly.tags.core.CoreTagLibrary$1.run(CoreTagLibrary.java:98)
...
org.apache.commons.jexl.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:258)
  at org.apache.commons.jexl.parser.ASTMethod.execute(ASTMethod.java:104)
  at org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:83)
  at org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:57)
  ... 108 more
Run Code Online (Sandbox Code Playgroud)

有人有解决这个问题的想法吗?

jenkins

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

观察片段和活动中的 LiveData 实例

我有一个简单的场景,我在片段中做一些事情,当我收到 LiveData 时,我想在 Activity 中做一些事情。

视图模型:

class MyViewModel(application: Application) : AndroidViewModel(application) {
    
   ...
    
    fun getUser(id: String): LiveData<User> {
        return repository.getUser(id)
    }
}
Run Code Online (Sandbox Code Playgroud)

分段:

class MyFragment : Fragment() {

    private lateinit var myViewModel: MyViewModel

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        activity?.run {
            myViewModel = ViewModelProviders.of(this).get(MyViewModel::class.java)
        } ?: throw Exception("Invalid Activity")
    }

    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
        return inflater.inflate(R.layout.fragment, container, false)
    }

    override fun onActivityCreated(savedInstanceState: Bundle?) {
        super.onActivityCreated(savedInstanceState)
        button.setOnClickListener {
            showProgressBar()
            myViewModel.getUser(editText.text.toString()).observe(this, Observer { it ->
                //TODO …
Run Code Online (Sandbox Code Playgroud)

android mvvm android-fragments android-livedata android-viewmodel

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

将 FragmentScenario 中的片段设置为从 DataBindingIdlingResource 使用时出现问题

我正在关注这个 Google Codelab,在第8 页(任务:使用数据绑定进行端到端测试),在第 8 步(编写 DataBindingIdlingResource),您必须创建一个名为DataBindingIdlingResource.kt.

class DataBindingIdlingResource : IdlingResource {
    [...]
}

private fun View.getBinding(): ViewDataBinding? = DataBindingUtil.getBinding(this)

/**
 * Sets the activity from an [ActivityScenario] to be used from [DataBindingIdlingResource].
 */
fun DataBindingIdlingResource.monitorActivity(
    activityScenario: ActivityScenario<out FragmentActivity>
) {
    activityScenario.onActivity {
        this.activity = it
    }
}

/**
 * Sets the fragment from a [FragmentScenario] to be used from [DataBindingIdlingResource].
 */
fun DataBindingIdlingResource.monitorFragment(fragmentScenario: FragmentScenario<out Fragment>) {
    fragmentScenario.onFragment {
        this.activity = it.requireActivity() …
Run Code Online (Sandbox Code Playgroud)

data-binding testing android android-espresso google-codelab

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

安卓。浓缩咖啡:无法检查背景

Windows 10(64 位)、Android Studio 3.1.2、Gradle 4.4、Java 1.8。

这是我的布局 xml

<TextView
    android:id="@+id/loginTextView"
    android:layout_width="255dp"
    android:layout_height="60dp"
    android:layout_marginBottom="15dp"
    android:background="@drawable/sign_in_login_bg"
    android:gravity="center"                              
    app:layout_constraintBottom_toTopOf="@+id/registerTextView"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent" />
Run Code Online (Sandbox Code Playgroud)

这里@drawable/sign_in_login_bg

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="@color/color_primary" />
    <corners android:radius="@dimen/text_view_rounded_corner_radius" />
</shape>
Run Code Online (Sandbox Code Playgroud)

我想编写浓缩咖啡测试来检查loginTextView是否具有背景@drawable/sign_in_login_bg

所以我写了自定义匹配器:

import org.hamcrest.Matcher;
public static Matcher<View> withBackground(final int expectedResourceId) {
        
      return new BoundedMatcher<View, View>(View.class) {
        
          @Override
          public boolean matchesSafely(View view) {
              return sameBitmap(view.getContext(), view.getBackground(), expectedResourceId);
         }
        
         @Override
         public void describeTo(Description description) {
             description.appendText("has background resource " + expectedResourceId);
        }
    };
} …
Run Code Online (Sandbox Code Playgroud)

android-espresso

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