草庐IT

android - 找不到包含的已配置根目录

coder 2023-12-12 原文

我收到以下错误:

05-29 01:08:02.924: E/AndroidRuntime(5447): FATAL EXCEPTION: IntentService[com.sample.muzeitest.MuzeiClass]
05-29 01:08:02.924: E/AndroidRuntime(5447): java.lang.IllegalArgumentException: Failed to find configured root that contains /data/data/com.sample.muzeitest/files/wallpaper0.png
05-29 01:08:02.924: E/AndroidRuntime(5447):     at android.support.v4.content.FileProvider$SimplePathStrategy.getUriForFile(FileProvider.java:678)
05-29 01:08:02.924: E/AndroidRuntime(5447):     at android.support.v4.content.FileProvider.getUriForFile(FileProvider.java:377)
05-29 01:08:02.924: E/AndroidRuntime(5447):     at com.sample.muzeitest.MuzeiClass.muzeiContentUri(MuzeiClass.java:58)
05-29 01:08:02.924: E/AndroidRuntime(5447):     at com.sample.muzeitest.MuzeiClass.onUpdate(MuzeiClass.java:37)
05-29 01:08:02.924: E/AndroidRuntime(5447):     at com.google.android.apps.muzei.api.MuzeiArtSource.processAndDispatchSubscriberAdded(MuzeiArtSource.java:614)
05-29 01:08:02.924: E/AndroidRuntime(5447):     at com.google.android.apps.muzei.api.MuzeiArtSource.processSubscribe(MuzeiArtSource.java:581)
05-29 01:08:02.924: E/AndroidRuntime(5447):     at com.google.android.apps.muzei.api.MuzeiArtSource.onHandleIntent(MuzeiArtSource.java:539)
05-29 01:08:02.924: E/AndroidRuntime(5447):     at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
05-29 01:08:02.924: E/AndroidRuntime(5447):     at android.os.Handler.dispatchMessage(Handler.java:99)
05-29 01:08:02.924: E/AndroidRuntime(5447):     at android.os.Looper.loop(Looper.java:137)
05-29 01:08:02.924: E/AndroidRuntime(5447):     at android.os.HandlerThread.run(HandlerThread.java:61)

当我尝试将我的 FileProvider 与 muzei 应用程序一起使用时。

我正在进行一项 Activity (将可绘制文件夹中的一些位图添加到 /data/data/APP-SPACE-HERE/files/ )和一个扩展 MuzeiArtSource 的类:

public class MuzeiClass extends MuzeiArtSource {


Uri imgUri;


public MuzeiClass() {
    super(MuzeiClass.class.getName());

}


@Override
public void onCreate() {
    super.onCreate();
   // setUserCommands(BUILTIN_COMMAND_ID_NEXT_ARTWORK); // manual switch image

}

@Override
protected void onUpdate(int arg0) {


       imgUri = muzeiContentUri();  


    publishArtwork(new Artwork.Builder()
           .imageUri( imgUri )
           .title("Example image")
           .byline("Unknown person, c. 1980")
//             .viewIntent(new Intent(Intent.ACTION_VIEW,
//                     Uri.parse("http://example")))
           .build());       

}


public Uri muzeiContentUri()    {

    File newFile = new File(getFilesDir(), "wallpaper0.png");
    Uri contentUri = FileProvider.getUriForFile(getApplicationContext(), "com.sample.muzeitest.fileprovider", newFile);


    return contentUri;
}



}

list 文件包含 provider for FileProviderservice 标签:

        <service
        android:name="com.sample.muzeitest.MuzeiClass"
        android:label="@string/title_activity_muzei_service"
        android:description="@string/muzei_description"
        android:icon="@drawable/ic_source">
         <intent-filter>
            <action android:name="com.google.android.apps.muzei.api.MuzeiArtSource" />
        </intent-filter>
        <meta-data android:name="color" android:value="#fa0" />
    </service>     


       <provider
            android:name="android.support.v4.content.FileProvider"
            android:authorities="com.sample.muzeitest.fileprovider"
            android:exported="false"
            android:grantUriPermissions="true">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/muzei_wallpapers" />
      </provider>  

我在 res/ 文件夹中也有这个 xml 文件:

<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
    <files-path name="my_images" path="files/"  />
</paths>

我做了 this昨天的问题,但问题是关于 uri 名称。 我使用 adb shell 进入指定路径 /data/data/com.sample.muzeitest/files/wallpaper0.png 并且我可以确认文件已保存。还阅读了一些关于 SO 的类似问题,但没有帮助。

最佳答案

/data/data/com.sample.muzeitest/files/wallpaper0.png 

表示文件路径,没有子目录。

然后 xml定义是

<files-path name="my_images" path=""  />

files-path#pathfiles/xxxxx/ <== 表示="">

请检查。

关于android - 找不到包含的已配置根目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23922900/

有关android - 找不到包含的已配置根目录的更多相关文章

  1. ruby - 检查 "command"的输出应该包含 NilClass 的意外崩溃 - 2

    为了将Cucumber用于命令行脚本,我按照提供的说明安装了arubagem。它在我的Gemfile中,我可以验证是否安装了正确的版本并且我已经包含了require'aruba/cucumber'在'features/env.rb'中为了确保它能正常工作,我写了以下场景:@announceScenario:Testingcucumber/arubaGivenablankslateThentheoutputfrom"ls-la"shouldcontain"drw"假设事情应该失败。它确实失败了,但失败的原因是错误的:@announceScenario:Testingcucumber/ar

  2. ruby-on-rails - active_admin 目录中的常量警告重新声明 - 2

    我正在使用active_admin,我在Rails3应用程序的应用程序中有一个目录管理,其中包含模型和页面的声明。时不时地我也有一个类,当那个类有一个常量时,就像这样:classFooBAR="bar"end然后,我在每个必须在我的Rails应用程序中重新加载一些代码的请求中收到此警告:/Users/pupeno/helloworld/app/admin/billing.rb:12:warning:alreadyinitializedconstantBAR知道发生了什么以及如何避免这些警告吗? 最佳答案 在纯Ruby中:classA

  3. ruby - 检查字符串是否包含散列中的任何键并返回它包含的键的值 - 2

    我有一个包含多个键的散列和一个字符串,该字符串不包含散列中的任何键或包含一个键。h={"k1"=>"v1","k2"=>"v2","k3"=>"v3"}s="thisisanexamplestringthatmightoccurwithakeysomewhereinthestringk1(withspecialcharacterslike(^&*$#@!^&&*))"检查s是否包含h中的任何键的最佳方法是什么,如果包含,则返回它包含的键的值?例如,对于上面的h和s的例子,输出应该是v1。编辑:只有字符串是用户定义的。哈希将始终相同。 最佳答案

  4. ruby-on-rails - 如何在 Gem 中获取 Rails 应用程序的根目录 - 2

    是否可以在应用程序中包含的gem代码中知道应用程序的Rails文件系统根目录?这是gem来源的示例:moduleMyGemdefself.included(base)putsRails.root#returnnilendendActionController::Base.send:include,MyGem谢谢,抱歉我的英语不好 最佳答案 我发现解决类似问题的解决方案是使用railtie初始化程序包含我的模块。所以,在你的/lib/mygem/railtie.rbmoduleMyGemclassRailtie使用此代码,您的模块将在

  5. ruby-on-rails - rbenv:从 RVM 移动到 rbenv 后,在 Jenkins 执行 shell 中找不到命令 - 2

    我从Ubuntu服务器上的RVM转移到rbenv。当我使用RVM时,使用bundle没有问题。转移到rbenv后,我在Jenkins的执行shell中收到“找不到命令”错误。我内爆并删除了RVM,并从~/.bashrc'中删除了所有与RVM相关的行。使用后我仍然收到此错误:rvmimploderm~/.rvm-rfrm~/.rvmrcgeminstallbundlerecho'exportPATH="$HOME/.rbenv/bin:$PATH"'>>~/.bashrcecho'eval"$(rbenvinit-)"'>>~/.bashrc.~/.bashrcrbenvversions

  6. 安卓apk修改(Android反编译apk) - 2

    最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路

  7. ruby-on-rails - 没有这样的文件或目录 - 用 Mini Magick 识别 - 2

    在我让另一个人重做我的前端UI之前,我的Rails应用程序运行平稳。我已经尝试解决此错误3天了。这是错误:Nosuchfileordirectory-identifyExtractedsource(aroundline#59):575859606162@post=Post.find(params[:id])authorize@postif@post.update_attributes(post_params)flash[:notice]="Postwasupdated."redirect_to[@topic,@post]else{"utf8"=>"✓","_method"=>"patc

  8. ruby-on-rails - 使用包含多个关联和单独的条件 - 2

    我的Gallery模型中有以下查询:media_items.includes(:photo,:video).rank(:position_in_gallery)我的图库模型有_许多媒体项,每个都有一个照片或视频关联。到目前为止,一切正常。它返回所有media_items包括它们的photo或video关联,由media_item的position_in_gallery属性排序。但是我现在需要将此查询返回的照片限制为仅具有is_processing属性的照片,即nil。是否可以进行相同的查询,但条件是返回的照片等同于:.where(photo:'photo.is_processingIS

  9. ruby-on-rails - 找不到 gem railties (>= 0.a) (Gem::GemNotFoundException) - 2

    我已经看到了一些其他的问题,尝试了他们的建议,但没有一个对我有用。我已经使用Rails大约一年了,刚刚开始一个新的Rails项目,突然遇到了问题。我卸载并尝试重新安装所有Ruby和Rails。Ruby很好,但Rails不行。当我输入railss时,我得到了can'tfindgemrailties。我当前的Ruby版本是ruby2.2.2p95(2015-04-13修订版50295)[x86_64-darwin15],尽管我一直在尝试通过rbenv设置ruby​​2.3.0。如果我尝试rails-v查看我正在运行的版本,我会得到同样的错误。我使用的是MacOSXElCapitan版本10

  10. 即使安装了 gem,Ruby 也找不到所需的库 - 2

    我花了几天时间尝试安装ruby​​1.9.2并让它与gems一起工作:-/我最终放弃了我的MacOSX10.6机器,下面是我的Ubuntu机器上的当前状态。任何建议将不胜感激!#rubytest.rb:29:in`require':nosuchfiletoload--mongo(LoadError)from:29:in`require'fromtest.rb:1:in`'#cattest.rbrequire'mongo'db=Mongo::Connection.new.db("mydb")#gemwhichmongo/usr/local/rvm/gems/ruby-1.9.2-p0/g

随机推荐