小编Pit*_*tel的帖子

如何在Android资源中使用unicode?

我想在我的资源文件中使用这个 unicode字符.

但无论我做什么,我都以dalvikvm崩溃结束(使用Android 2.3和4.2.2测试):

W/dalvikvm( 8797): JNI WARNING: input is not valid Modified UTF-8: illegal start byte 0xf0
W/dalvikvm( 8797):              string: ''
W/dalvikvm( 8797):              in Landroid/content/res/StringBlock;.nativeGetString:(II)Ljava/lang/String; (NewStringUTF)
E/dalvikvm( 8797): VM aborting
F/libc    ( 8797): Fatal signal 11 (SIGSEGV) at 0xdeadd00d (code=1), thread 8797 (cz.ipex...)
Run Code Online (Sandbox Code Playgroud)

我在资源文件中尝试了这些版本:

<string name="geolocation_icon" translatable="false">&#x1f4e1;</string> <!-- HTML -->
<string name="geolocation_icon" translatable="false">\uD83D\uDCE1</string> <!-- escaped unicode -->
<string name="geolocation_icon" translatable="false"></string> <!-- unicode character -->
Run Code Online (Sandbox Code Playgroud)

请注意,在代码中的Java String中使用它可以正常工作:

final String geolocation_icon = "\uD83D\uDCE1";
Run Code Online (Sandbox Code Playgroud)

unicode android utf-8 surrogate-pairs

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

本地aar库的传递依赖性

我们正在为我们的API创建一些库,我们将使外部开发人员的生活更轻松.

因此,我们创建了新的库项目,并将Retrofit和其他一些库作为依赖项.

dependencies {
    compile 'com.android.support:appcompat-v7:23.3.0'
    compile 'com.google.code.gson:gson:2.6.2'
    compile 'com.squareup.retrofit2:retrofit:2.0.1'
    compile 'com.squareup.retrofit2:converter-gson:2.0.1'
    compile 'com.squareup.okhttp3:okhttp:3.2.0'
}
Run Code Online (Sandbox Code Playgroud)

现在,当我们构建它时,它会生成aar文件.

但是现在当我们将aar文件放到libs目录并将其设置为依赖项时,我们仍然必须在用户的build.gradle文件中放置相同的依赖项,这很糟糕.它应该来自图书馆,对吧​​?

repositories {
    flatDir {
        dirs 'libs'
    }
}

dependencies {
    compile(name: 'ourlibrary', ext: 'aar') {
        transitive = true;
    }
}
Run Code Online (Sandbox Code Playgroud)

如何transitive = true上班?

android android-gradle-plugin aar

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

自上而下的子图,左右内的子图

我想让我的图表看起来像这样:

但我只能得到这个:

问题是,rankdir 不工作subgraph.那么,如何模仿呢?

代码:

digraph G {
    node [shape = circle]
    0 [style = invis]

    0 -> "0A"

    subgraph clusterA {
        label=A
        "0A"
        "1A"
        "2A" -> "0A" [label=•]
    }

    subgraph clusterB {
        label=B
        "0B"
        "1B"
        "2B" -> "0B" [label=•]
    }

        subgraph clusterC {
        label=C
        "0C"
        "1C"
        "2C" -> "0C" [label=•]
    }

    subgraph clusterD {
        label=D
        "0D"
        "1D"
        "2D" -> "0D" [label=•]
    }

    subgraph clusterE {
        label=E
        "0E"
        "1E"
        "2E" -> "0E" [label=•]
    }

    subgraph clusterF …
Run Code Online (Sandbox Code Playgroud)

graphviz subgraph

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

如何在Android Studio logcat中过滤多个单词

我想在logcat中看到几个单词.换句话说,只是一个给定的标签.我尝试启用Regex并键入[Encoder|Decoder]过滤器,但它不起作用.

regex logcat android-logcat android-studio

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

如何再次显示Android Gradle Plugin更新对话框

我更新了Android Studio,并出现了Gradle Plugin更新对话框.我不小心点击了这个项目不再显示.如何再次显示对话框?

intellij-idea android-studio android-studio-3.0

18
推荐指数
2
解决办法
3010
查看次数

@PreAuthorize(permitAll)仍然需要身份验证

我在我的Repository(带@RepositoryRestResource注释)中有以下示例方法:

@Override
@PreAuthorize("permitAll")
@PostAuthorize("permitAll")
public Iterable<User> findAll();
Run Code Online (Sandbox Code Playgroud)

但是401 Unauthorized当我将这些permitAll注释添加到整个Repository界面时,我仍然会遇到这种情况.

我得到了这个作为我的WebSecurityConfigurerAdapter:

@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
@Configuration
class WebSecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(final HttpSecurity http) throws Exception {
        http.authorizeRequests().anyRequest().fullyAuthenticated().and().httpBasic().and().csrf().disable();
    }
}
Run Code Online (Sandbox Code Playgroud)

我认为这优先于那些方法注释,我不知道如何解决这个问题.

spring spring-security

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

如何使用 Safe Args 传递通用数据类型?

我需要将 KotlinPair作为参数传递。


<argument android:name="data" app:argType="kotlin.Pair" />
Run Code Online (Sandbox Code Playgroud)
e: CreateCodeFragmentDirections.kt: (16, 15): 2 type arguments expected for class Pair<out A, out B>
Run Code Online (Sandbox Code Playgroud)
<argument android:name="data" app:argType="kotlin.Pair<String, String>" />
Run Code Online (Sandbox Code Playgroud)
Cause: markup not allowed inside attribute value - illegal <  (position: TEXT seen ...<argument android:name="data" app:argType="kotlin.Pair<... @132:30) 
Run Code Online (Sandbox Code Playgroud)
<argument android:name="data" app:argType="kotlin.Pair&lt;String, String&gt;" />
Run Code Online (Sandbox Code Playgroud)
Can't escape identifier `Pair<String, String>` because it contains illegal characters: <>
Run Code Online (Sandbox Code Playgroud)

上述尝试均无效。我该怎么做?

android android-safe-args

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

带有@Transactional注释的Spring OpenSessionInViewFilter

这是关于Spring 在服务层OpenSessionInViewFilter使用 @Transactional注释.

我经历了这么多的堆栈溢出帖子,但仍然困惑我是否应该使用OpenSessionInViewFilter或不避免LazyInitializationException 如果有人帮我找到以下查询的答案将是很大的帮助.

  • OpenSessionInViewFilter在具有复杂模式的应用程序中使用是不好的做法.
  • 使用此过滤器可能会导致N+1问题
  • 如果我们使用OpenSessionInViewFilter它是否意味着@Transactional不需要?

下面是我的Spring配置文件

<context:component-scan base-package="com.test"/>
<context:annotation-config/>
 <bean id="messageSource"
        class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
        <property name="basename" value="resources/messages" />
        <property name="defaultEncoding" value="UTF-8" />
    </bean>
 <bean id="propertyConfigurer"
        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
        p:location="/WEB-INF/jdbc.properties" />
 <bean id="dataSource"
        class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"
        p:driverClassName="${jdbc.driverClassName}"
        p:url="${jdbc.databaseurl}" p:username="${jdbc.username}"
        p:password="${jdbc.password}" />
       <bean id="sessionFactory"
        class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />     
        <property name="configLocation">
            <value>classpath:hibernate.cfg.xml</value>
        </property>
        <property name="configurationClass">
            <value>org.hibernate.cfg.AnnotationConfiguration</value>
        </property>
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">${jdbc.dialect}</prop>
                <prop key="hibernate.show_sql">true</prop>
                <!--
                <prop key="hibernate.hbm2ddl.auto">create</prop>
                 -->
            </props>
        </property>
    </bean> …
Run Code Online (Sandbox Code Playgroud)

java spring hibernate spring-transactions

11
推荐指数
2
解决办法
9931
查看次数

如何使用Retrofit2,Gson和Rx处理多种可能的响应类型

API我必须使用sucks,并始终返回HTTP 200.但有时有适当的响应:

[{"blah": "blah"}, {"blah": "blah"}]
Run Code Online (Sandbox Code Playgroud)

有时,有错误:

{"error": "Something went wrong", "code": 123}
Run Code Online (Sandbox Code Playgroud)

我正在使用Retrofit2与Gson转换器和Rx适配器:

final Api api = new Retrofit.Builder()
        .baseUrl(URL)
        .client(client)
        .addCallAdapterFactory(RxJavaCallAdapterFactory.createWithScheduler(Schedulers.io()))
        .addConverterFactory(GsonConverterFactory.create())
        .build()
        .create(Api.class);
Run Code Online (Sandbox Code Playgroud)

现在,当我收到错误响应时,将onError调用处理程序,但会出现以下异常:

java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2 path $
    at com.google.gson.stream.JsonReader.beginArray(JsonReader.java:350)
    at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:80)
    at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:61)
    at retrofit2.converter.gson.GsonResponseBodyConverter.convert(GsonResponseBodyConverter.java:37)
    at retrofit2.converter.gson.GsonResponseBodyConverter.convert(GsonResponseBodyConverter.java:25)
    at retrofit2.ServiceMethod.toResponse(ServiceMethod.java:117)
    at retrofit2.OkHttpCall.parseResponse(OkHttpCall.java:211)
    at retrofit2.OkHttpCall.execute(OkHttpCall.java:174)
    at retrofit2.adapter.rxjava.RxJavaCallAdapterFactory$RequestArbiter.request(RxJavaCallAdapterFactory.java:171)
    at rx.internal.operators.OperatorSubscribeOn$1$1$1.request(OperatorSubscribeOn.java:80)
    at rx.Subscriber.setProducer(Subscriber.java:211)
    at rx.internal.operators.OperatorSubscribeOn$1$1.setProducer(OperatorSubscribeOn.java:76)
    at retrofit2.adapter.rxjava.RxJavaCallAdapterFactory$CallOnSubscribe.call(RxJavaCallAdapterFactory.java:152)
    at retrofit2.adapter.rxjava.RxJavaCallAdapterFactory$CallOnSubscribe.call(RxJavaCallAdapterFactory.java:138)
    at rx.Observable.unsafeSubscribe(Observable.java:10144)
    at rx.internal.operators.OperatorSubscribeOn$1.call(OperatorSubscribeOn.java:94)
    at rx.internal.schedulers.CachedThreadScheduler$EventLoopWorker$1.call(CachedThreadScheduler.java:230)
    at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:428) …
Run Code Online (Sandbox Code Playgroud)

retrofit2

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

如何将2个数组转换为地图

我有2个数组,一个用字符串作为键,另一个用整数作为值.我怎样才能将它们转换为地图?

val keys = arrayOf("butter", "milk", "apples")
val values = arrayOf(5, 10, 42)
val map: Map<String, Int> = ???
Run Code Online (Sandbox Code Playgroud)

编辑:我知道如何在Kotlin中将List转换为Map?,但它没有解决这个问题,因为我有2个列表.

kotlin

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