首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >android studio的String限制[已关闭]

android studio的String限制[已关闭]
EN

Stack Overflow用户
提问于 2021-02-20 02:09:11
回答 1查看 156关注 0票数 0

关门了。这个问题需要调试详细信息..。它目前不接受答案。

想要改进这个问题吗?更新问题,使其成为主题堆栈溢出。

10天前就关门了。

改进这个问题

我对Android Studio和java编程真的很陌生。

我正在尝试创建一个新的项目,只是为了实验和学习。

这个应用程序有很长的文本,我使用字符串格式化它,也作为资源。

但是,在1400+文本和格式化之后,活动崩溃。

我可以知道字符串资源有限制吗?

克服这些问题的方法是什么?

我想使用原始文本,但就我目前的理解,没有办法将其格式化为字符串。

如果有人能帮上忙的话真的很感谢。

\编辑

下面是错误

代码语言:javascript
运行
复制
2021-02-20 14:03:15.512 26003-26003/? E/example.munaja: Unknown bits set in runtime_flags: 0x8000
2021-02-20 14:03:15.528 26003-26003/com.example.munajat E/libc: Access denied finding property "runtime.mmitest.isrunning"
2021-02-20 14:03:15.734 26003-26042/com.example.munajat E/AwareLog: AtomicFileUtils: readFileLines file not exist: android.util.AtomicFile@becf0c7

下面是我启动崩溃的活动时的完整堆栈跟踪

代码语言:javascript
运行
复制
2021-02-20 14:08:19.733 26422-26422/? I/example.munaja: Late-enabling -Xcheck:jni
2021-02-20 14:08:19.765 26422-26422/? E/example.munaja: Unknown bits set in runtime_flags: 0x8000
2021-02-20 14:08:19.767 26422-26422/? I/example.munaja: Reinit property: dalvik.vm.checkjni= false
2021-02-20 14:08:19.775 26422-26422/? W/re-initialized>: type=1400 audit(0.0:666616): avc: denied { read } for pid=26422 name="u:object_r:mmi_prop:s0" dev="tmpfs" ino=15380 scontext=u:r:untrusted_app:s0:c159,c257,c512,c768 tcontext=u:object_r:mmi_prop:s0 tclass=file permissive=0
2021-02-20 14:08:19.778 26422-26422/? E/libc: Access denied finding property "runtime.mmitest.isrunning"
2021-02-20 14:08:19.782 26422-26422/? D/ActivityThread: Attach thread to application
2021-02-20 14:08:19.925 26422-26422/com.example.munajat I/example.munaja: QarthPatchMonintor::Init
2021-02-20 14:08:19.925 26422-26422/com.example.munajat I/example.munaja: QarthPatchMonintor::StartWatch
2021-02-20 14:08:19.925 26422-26422/com.example.munajat I/example.munaja: QarthPatchMonintor::WatchPackage: /data/hotpatch/fwkhotpatch/
2021-02-20 14:08:19.925 26422-26422/com.example.munajat I/example.munaja: QarthPatchMonintor::CheckAndWatchPatch: /data/hotpatch/fwkhotpatch/com.example.munajat
2021-02-20 14:08:19.925 26422-26422/com.example.munajat I/example.munaja: QarthPatchMonintor::CheckAndWatchPatch: /data/hotpatch/fwkhotpatch/all
2021-02-20 14:08:19.925 26422-26422/com.example.munajat I/example.munaja: QarthPatchMonintor::Run
2021-02-20 14:08:19.925 26422-26441/com.example.munajat I/HwApiCacheMangerEx: apicache path=/storage/emulated/0 state=mounted key=com.example.munajat#10415#256
2021-02-20 14:08:19.925 26422-26456/com.example.munajat I/example.munaja: QarthPatchMonintor::Reading
2021-02-20 14:08:19.925 26422-26441/com.example.munajat I/HwApiCacheMangerEx: apicache path=/storage/1538-291C state=mounted key=com.example.munajat#10415#256
2021-02-20 14:08:19.925 26422-26456/com.example.munajat I/example.munaja: QarthPatchMonintor::CheckNotifyEvent
2021-02-20 14:08:19.926 26422-26456/com.example.munajat I/example.munaja: QarthPatchMonintor::CheckNotifyEvent before read
2021-02-20 14:08:19.927 26422-26441/com.example.munajat I/HwApiCacheMangerEx: apicache path=/storage/emulated/0 state=mounted key=com.example.munajat#10415#0
2021-02-20 14:08:19.927 26422-26441/com.example.munajat I/HwApiCacheMangerEx: apicache path=/storage/1538-291C state=mounted key=com.example.munajat#10415#0
2021-02-20 14:08:19.930 26422-26441/com.example.munajat I/AwareBitmapCacher: init processName:com.example.munajat pid=26422 uid=10415
2021-02-20 14:08:19.962 26422-26458/com.example.munajat E/AwareLog: AtomicFileUtils: readFileLines file not exist: android.util.AtomicFile@b449e48
2021-02-20 14:08:19.999 26422-26422/com.example.munajat V/ActivityThread: callActivityOnCreate
2021-02-20 14:08:20.021 26422-26422/com.example.munajat V/HwWidgetFactory: : successes to get AllImpl object and return....
2021-02-20 14:08:20.047 26422-26422/com.example.munajat W/example.munaja: Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (greylist, reflection, allowed)
2021-02-20 14:08:20.048 26422-26422/com.example.munajat W/example.munaja: Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (greylist, reflection, allowed)
2021-02-20 14:08:20.060 26422-26422/com.example.munajat I/OverScrollerOptimization: start init SmartSlideOverScroller and get the overscroller config
2021-02-20 14:08:20.060 26422-26422/com.example.munajat I/OverScrollerOptimization: get the overscroller config
2021-02-20 14:08:20.246 26422-26422/com.example.munajat D/myLog: 2:08 pm
2021-02-20 14:08:20.253 26422-26422/com.example.munajat D/myLog: Sat Feb 20 14:08:20 GMT+08:00 2021
2021-02-20 14:08:20.253 26422-26422/com.example.munajat D/myLog: Saturday, 20 February 2021
2021-02-20 14:08:20.256 26422-26422/com.example.munajat D/ActivityThread: add activity client record, r= ActivityRecord{ebb44ec token=android.os.BinderProxy@91c585c {com.example.munajat/com.example.munajat.home}} token= android.os.BinderProxy@91c585c
2021-02-20 14:08:20.293 26422-26463/com.example.munajat D/HiTouch_PressGestureDetector: onAttached, package=com.example.munajat, windowType=1, mHiTouchRestricted=false
2021-02-20 14:08:20.329 26422-26460/com.example.munajat I/iGraphics: [0020080c] pn: com.example.munajat, p: 26422
2021-02-20 14:08:20.329 26422-26460/com.example.munajat I/iGraphics: [0030080c] no spt app: com.example.munajat
2021-02-20 14:08:20.346 26422-26460/com.example.munajat D/mali_winsys: EGLint new_window_surface(egl_winsys_display *, void *, EGLSurface, EGLConfig, egl_winsys_surface **, EGLBoolean) returns 0x3000
2021-02-20 14:08:20.419 26422-26460/com.example.munajat W/Gralloc3: mapper 3.x is not supported
2021-02-20 14:08:20.462 26422-26422/com.example.munajat I/HwViewRootImpl: removeInvalidNode jank list is null
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-20 02:27:59

String.length()方法返回字符串的长度。字符串的长度等于字符串中Unicode单元的数量。Java平台在char数组(每个字符需要两个字节)、String和StringBuffer类中使用UTF-16表示。

该方法返回int类型的长度。所以,字符串maximum size与range of integer data type..。该方法返回的最大长度为Integer.MAX_VALUE..。

Java中int的大小是4个字节(包括一个带符号的位,即MSB)。integer数据类型的范围是-231到231-1 (-2147483648到2147483647)。请记住,我们不能使用负值进行索引。索引是在最大范围内完成的。这意味着我们不能存储第2147483648个字符。因此,Java中字符串的最大长度为0到2147483647。因此,理论上,我们可以有一个长度为2,147,483,647个字符的字符串。

代码语言:javascript
运行
复制
import java.util.Arrays;

class StringMaxSize {
    public static void main(String args[]) {
        for (int i = 0; i < 1000; i++) {
            try {
                //Integer.MAX_VALUE is a constant that stores the maximum possible value for any integer variable  
                char[] array = new char[Integer.MAX_VALUE - i];
                //assign the specified data value to each element   
                Arrays.fill(array, 'a');
                //creating a constructor of the String class and parses an array into it  
                String str = new String(array);
                //determines and print the length of the string  
                System.out.println(str.length());
            } catch (Throwable e) {
                // returns the detail message string of this throwable  
                System.out.println(e.getMessage());
                //prints the maximum value  
                System.out.println("Last: " + (Integer.MAX_VALUE - i));
                System.out.println("Last: " + i);
            }
        }
    }
}

输出:

所以,1400+文本并不是真正的问题。

有关更多详细信息,请参阅以下内容

链接..。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66282838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档